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-generator

Verwendung

Interaktiver Modus

cargo run -- generate --interactive

Führt durch die Erstellung eines neuen Moduls mit Eingabeaufforderungen.

Mit YAML-Konfiguration

cargo run -- generate --config my-library.yaml

Validierung

cargo run -- validate --config my-library.yaml

YAML-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}.rs

Rust-Implementation des Moduls

mod.rs Integration

Automatisch

Export in stdlib/mod.rs

Type Checker

Automatisch

Typ-Definitionen hinzugefügt

Code Generator

Automatisch

Codegen-Integration

Unit Tests

compiler/tests/{name}_test.rs

Test-Suite für alle Funktionen

Dokumentation

docs/api/{name}.md

API-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