Lunaria - KI-gestützte Low-Code-Architektur mit Lua und Go

Lunaria - KI-gestützte Low-Code-Architektur mit Lua und Go
By Matthias Petermann / on 17.08.2025

Einleitung

Lunaria ist kein Framework im klassischen Sinne, sondern ein praxisnahes Lern- und Prototyping-System. Ziel ist es, moderne Technologien wie Messaging, Storage oder Web-Rendering mit einer einfachen, menschenlesbaren Skriptsprache steuerbar zu machen. Die Plattform kombiniert eine Go-basierte Laufzeitumgebung mit der Skriptsprache Lua – leichtgewichtig, erweiterbar und ideal zum Experimentieren.

Im Zentrum steht die Idee:

Komplexe Systeme werden erst wirklich verstanden, wenn man sie selbst steuern kann – und das mit minimaler Einstiegshürde.


Architektur und Philosophie

Lunaria basiert auf einem klaren, modularen Prinzip: Go bildet den technischen Unterbau – stabil, performant und sicher. Lua dient als Schnittstelle für Lernende, Entwickler oder Maker, die Funktionen aufrufen, Module kombinieren oder kleine Workflows aufbauen möchten.

Die Kommunikation zwischen beiden Ebenen erfolgt über definierte APIs, die bestimmte Aufgabenbereiche kapseln:

  • bus – Messaging via ZeroMQ oder MQTT
  • config – Konfigurationsmanagement und interaktive Eingabe
  • storage – Zugriff auf persistente Daten
  • forms – HTML- und Template-basierte Formularlogik
  • timer / cron – zeitgesteuerte Abläufe
  • log – konsistentes Logging über alle Module

Diese Struktur erlaubt es, aus kleinen Lua-Skripten vollwertige Prototypen oder Lernumgebungen aufzubauen.


Das erste Skript: „Hello from Lunaria“

Das klassische „Hello World“ zeigt sich in Lunaria in seiner einfachsten Form:

-- main.lua
log.info("Hello from Lunaria!")

Hinter diesem Einzeiler steckt bereits die vollständige Interaktion mit dem Laufzeitsystem. log.info ist kein einfacher Konsolenaufruf, sondern eine API-Funktion, die direkt über die Go-Engine bereitgestellt wird.

Damit ist der Einstieg niedrigschwellig – aber technisch „echt“. Das Logging landet im zentralen System, das für jede Skriptausführung eine Session mit Kontextinformationen anlegt.


Kommunikation per Skript: Das Bus-System

Ein zentrales Lernziel von Lunaria ist das Verständnis von Messaging. Dafür gibt es die Module bus_pub und bus_sub, die Publisher- und Subscriber-Logik demonstrieren – in reinen Lua-Skripten.

Ein einfaches Publisher-Beispiel sieht so aus:

local cfg = config.expect("APP_", {
  pub_port = { type = "number", default = 5557, prompt = "ZMQ PUB Port" },
  number = { type = "number", required = true, prompt = "How many messages?" }
})

bus.listen(cfg.pub_port)
timer.sleep(1000)

for i = 1, tonumber(cfg.number) do
  bus.publish("example.topic", {
    name = "button",
    event = "click",
    counter = i
  })
  timer.sleep(500)
end

Das Skript fragt interaktiv Konfigurationen ab (config.expect), bindet einen ZeroMQ-Publisher und sendet strukturierte Nachrichten auf ein Topic. Alles passiert deklarativ und nachvollziehbar – ein idealer Einstieg in eventbasierte Systeme, ohne dass man direkt mit Netzwerkprotokollen oder Message-Brokern arbeiten muss.


Formulare, Flows und Interaktion

Lunaria beschränkt sich nicht auf technische Backends. Ein weiteres Modul erlaubt die Definition und Steuerung von Formularlogik und Benutzerinteraktionen – ideal für Lehrzwecke, UI-Experimente oder einfache Web-Apps.

Ein Beispiel aus forms_flow/main.lua zeigt einen kleinen Authentifizierungs-Flow:

local USERS = { demo = "secret", alice = "wonderland" }

local login_form = {
  title = "Please log in",
  fields = {
    { label = "Username", name = "username", type = "text", required = true },
    { label = "Password", name = "password", type = "password", required = true }
  },
  buttons = {
    { label = "Login", action = "submit" }
  }
}

Diese Strukturen werden von der Laufzeitumgebung in ein dynamisches HTML-Interface übersetzt – komplett generiert durch Lua-Datenstrukturen. So lässt sich die Trennung von Logik, Darstellung und Datenfluss direkt nachvollziehen.

Solche Beispiele sind keine fertigen Apps, sondern didaktische Werkzeuge: Sie zeigen, wie sich Logik schrittweise von der Benutzeroberfläche bis zur Systemebene denken lässt.


Proof-of-Concept auf mehreren Ebenen

Lunaria ist nicht einfach eine Plattform, sondern eine Reihe aufeinander abgestimmter Proof-of-Concepts:

  1. Abstraktion komplexer Technologien durch eine leicht erlernbare Skriptsprache
  2. Kombination von kompiliertem (Go) und interpretiertem (Lua) Code
  3. Einbindung generativer KI über OpenAI-Module
  4. Deployment auf alternativen Plattformen wie Nomad
  5. Automatische Code- und Dokumentationsgenerierung im Entwicklungsprozess

Jede dieser Ebenen wurde gezielt genutzt, um Grenzen zwischen Systemarchitektur, Lernsystem und KI-gestütztem Coding zu untersuchen.


Fazit

Lunaria ist ein strukturiertes Prototyping-System. Es verbindet den Pragmatismus einer Skriptsprache mit der Robustheit einer modernen Laufzeit und schafft so einen Lernraum, in dem Technik nachvollziehbar wird.

Ob als Grundlage für Workshops, Lehrmaterial oder als Proof-of-Concept-Plattform für hybride Architekturen: Lunaria zeigt, dass Einfachheit und Experimentierfreude durchaus ernstzunehmende Werkzeuge für Systemverständnis und Innovation sind.


Kurz gesagt: Lunaria ist kein Produkt, sondern eine belastbare Prototyping-Basis, um moderne Technologie nachvollziehbar zu vermitteln und iterativ weiterzuentwickeln.


Bildnachweis: Das Lua-Logo ist ein urheberrechtlich geschütztes Design der Lua-Entwickler an der Pontifical Catholic University of Rio de Janeiro (PUC-Rio). Verwendung im Rahmen redaktioneller Berichterstattung gemäß den Hinweisen zur Logonutzung auf lua.org.