v1.0.0CLI Tool
Bibliotheks-Generator
CLI-Tool zur automatischen Generierung neuer Standardbibliotheks-Module für Velisch mit vollständiger Integration in alle System-Komponenten.
Installation
cd tools/library-generator
cargo build --release
# Binary verfügbar unter:
# target/release/velin-library-generatorVerwendung
Interaktiver Modus
cargo run -- generate --interactiveFührt durch die Erstellung eines neuen Moduls mit Eingabeaufforderungen.
Mit YAML-Konfiguration
cargo run -- generate --config my-library.yamlValidierung
cargo run -- validate --config my-library.yamlYAML-Konfiguration
my-library.yamlyaml
name: "queue"
description: "Warteschlangen für Task- und Event-Verarbeitung"
version: "2.7"
category: "utils"
functions:
- name: "create"
description: "Erstellt neue Queue"
params:
- name: "capacity"
type: "number"
optional: true
return_type: "Queue"
- name: "enqueue"
description: "Fügt Element hinzu"
params:
- name: "queue"
type: "Queue"
- name: "item"
type: "any"
return_type: "void"
- name: "dequeue"
description: "Entfernt und gibt Element zurück"
params:
- name: "queue"
type: "Queue"
return_type: "Option<any>"Generierte Komponenten
Modul-Datei
compiler/src/stdlib/{name}.rsRust-Implementation des Moduls
mod.rs Integration
AutomatischExport in stdlib/mod.rs
Type Checker
AutomatischTyp-Definitionen hinzugefügt
Code Generator
AutomatischCodegen-Integration
Unit Tests
compiler/tests/{name}_test.rsTest-Suite für alle Funktionen
Dokumentation
docs/api/{name}.mdAPI-Referenz mit Beispielen
Modul-Typen
Data Processing
Module für Datenverarbeitung wie JSON, CSV, YAML, Encoding.
Network/IO
Module für Netzwerk und IO wie HTTP, WebSocket, Redis, SMTP.
Utility
Utility-Module wie Queue, Scheduler, EventBus, Template.
Beispiel: Neues Modul erstellen
# 1. Konfiguration erstellen
cat > email.yaml << 'EOF'
name: "email"
description: "E-Mail-Verarbeitung und -Versand"
version: "2.8"
category: "network"
functions:
- name: "send"
description: "Sendet E-Mail"
params:
- name: "to"
type: "string"
- name: "subject"
type: "string"
- name: "body"
type: "string"
return_type: "Result<void, string>"
EOF
# 2. Modul generieren
cargo run -- generate --config email.yaml
# 3. Generierte Dateien prüfen
ls -la compiler/src/stdlib/email.rs
ls -la compiler/tests/email_test.rs
ls -la docs/api/email.md
# 4. Tests ausführen
cd compiler && cargo test email