Klar typisiert.
Früh geprüft.
Explizite Typen, unveränderliche Werte und sichtbare optionale Daten helfen, Fehler schon beim Prüfen zu finden.
match name {
ZELYRA
Zelyra 0.1.45 · in aktiver Entwicklung
Mit Zelyra beschreibst du Daten, Regeln und Webseiten in einer klaren, statisch typisierten Sprache.
Zelyra verbindet Datenmodell, Typen, Validierung, SQL und Oberfläche. Aus einer klaren Beschreibung entstehen Schritt für Schritt geprüfte Bausteine für deine Anwendung.
Das Prinzip verstehen →Explizite Typen, unveränderliche Werte und sichtbare optionale Daten helfen, Fehler schon beim Prüfen zu finden.
Ein Schema kann zur Grundlage für fachliche Typen, SQL, Formulare, APIs und CRUD werden.
Beginne mit einem kleinen Programm und erweitere es Schritt für Schritt zur Webanwendung.
Lernpfad öffnen →Vier überschaubare Schritte führen dich vom ersten Programm zur datenbankgestützten Webanwendung.
Zelyra-Code beschreibt klar, welche Werte eine Funktion erwartet und welches Ergebnis sie liefert.
Beispiel ansehen →fn fibonacci(n: Int) -> Int {
if n <= 1 {
return n
}
return fibonacci(n - 1) +
fibonacci(n - 2)
}→ 55Hier siehst du eine kleine Zelyra-Seite. Ändere den Namen in der Route und beobachte, wie daraus eine sichere HTML-Antwort entsteht.
page "/hello/{name}" {
html {
<h1>Hello, {name}!</h1>
}
}Die Beispiele folgen dem natürlichen Weg einer Anwendung: erst Werte und Regeln, dann Daten, Oberfläche und geprüfte Schnittstellen.
Zelyra setzt auf Klarheit. Werte sind standardmäßig unveränderlich; Veränderlichkeit wird ausdrücklich markiert.
name = "Anna"
age: Int = 25
mutable counter = 0
counter = counter + 1
fn add(a: Int, b: Int) -> Int {
return a + b
}Normale Werte sind nicht null. Optionale Werte werden mit ? gekennzeichnet und per Pattern Matching behandelt.
name: String?
match name {
Some(value) => print(value)
None => print("Unknown")
}Nominale Typen schützen deine Geschäftslogik. Eine UserId und eine OrderId sind nicht austauschbar, auch wenn beide auf Id basieren.
type UserId = Id
type OrderId = Id
fn load_order(id: OrderId) {
// UserId ist hier kein Ersatz
}Schleifen können mit break, continue und überprüfbaren Invarianten beschrieben werden.
mutable current = 3
while current > 0
invariant { current >= 0 }
{
current = current - 1
}In Zelyra wird die Datenbank zur Ausgangsbasis für Validierung, Formulare, SQL und Web-Logik.
Pflichtfelder und maximale Längen aus dem Schema können in einem Formular wiederverwendet werden.
table customers {
id: Id primary auto
name: String(100) required
email: Email?
}
form CustomerCreate -> customers {
fields { name email }
}Eigenes SQL bleibt möglich. Zelyra prüft Schema, Spalten, Parameter und Ergebnisse — ohne dich in eine ORM-Schicht zu zwingen.
Databasecapability Database
query customers {
select id, name, email
where active = true
order by name
}Der Web Core bringt Routing, HTML, Query-Strings und Requests zusammen. APIs können daraus typisierte Verträge machen.
Mit einem eingebauten Server kannst du direkt loslegen. Der Pfadparameter wird standardmäßig HTML-escaped.
page "/hello/{name}" {
html {
<html>
<h1>Hello, {name}!</h1>
</html>
}
}API-Deklarationen können Routen und Typen prüfen, strukturierte Fehler liefern und OpenAPI- sowie TypeScript-Ausgaben erzeugen.
zelyra doc für OpenAPI/TypeScriptapi GET "/customers" -> Customer[] {
auth "user"
return customers
}Starte klein, prüfe jeden Schritt und erweitere dein Beispiel erst dann zur eigenen Anwendung.
Installieren, Fibonacci ausführen, den Check-Befehl kennenlernen.
Eine Tabelle beschreiben, Fachtypen anlegen und ein kleines Record lesen.
Route, Parameter und HTML-Response mit dem eingebauten Server verbinden.
Schemaabhängige Felder validieren und die Regeln bewusst sichtbar machen.
Typen, Authentifizierung und strukturierte Fehler zu einer Schnittstelle formen.
Contracts, SQL, CRUD und Datenbank-Capabilities nach Bedarf ergänzen.
git clone https://github.com/sf1976/zelyra.git && cd zelyra && ./install.shDanach kannst du direkt ein Beispiel prüfen und ausführen.zelyra new meine-app --mariadb && cd meine-app && cp .env.example .env && docker compose --env-file .env -f docker-compose.mariadb.yml up -d --buildDanach: zelyra db setup main.zylBeginne mit einem kleinen Beispiel, lerne die Grundlagen kennen und entwickle daraus Schritt für Schritt deine eigene Anwendung.
Zum GitHub-Repository ↗Stefan Siedelmann
Neuenhöfer Str. 20
34355 Staufenberg
Telefon: 01523 3790716
E-Mail: stefan@siedelmann.com