std.db

Datenbank-Units für die direkte Kommunikation mit relationalen Datenbanken und Key-Value-Stores. Lyx implementiert alle Datenbankprotokolle nativ über TCP — ohne externe Treiber, MiddlewareSchichten oder ORMs. Die Verbindung erfolgt direkt auf Protokollebene, was maximale Kontrolle und minimalen Overhead ermöglicht.

Unit Beschreibung
std.db.mysql MySQL-Client (Protokoll 41 über TCP)
std.db.redis Redis-Client (RESP-Protokoll über TCP)

Designprinzipien

  • Kein Treiber-Layer — Lyx spricht das native Datenbankprotokoll direkt; kein libmysql, kein ODBC, kein Redis-Client-Wrapper
  • Keine Abstraktionsschicht — jede Unit ist auf ihr Protokoll spezialisiert und gibt dessen volle Funktionalität frei
  • Explizite Verbindungsverwaltung — Verbindungen, Abfragen und Ressourcen werden manuell verwaltet (kein Connection-Pooling im Standard, kann selbst implementiert werden)
  • Typsichere Rückgabewerte — Fehler werden über Rückgabecodes (nicht Exceptions) signalisiert

Verfügbare Units

std.db.mysql

MySQL-Client-Implementierung über das MySQL-Protokoll 41 (binäres Protokoll, TCP-Port 3306). Unterstützt Verbindung mit Authentifizierung, einfache Abfragen, Ergebnis-Sets, Prepared Statements und Transaktionen.

import std.db.mysql;

var conn: MySQLConn := MySQLConnect("127.0.0.1", 3306, "user", "pass", "mydb");

var res: MySQLResult := MySQLQuery(conn, "SELECT id, name FROM users WHERE active = 1");
while (MySQLFetchRow(res) != 0) {
    PrintStr(MySQLGetRowStr(res, 0, 1));
}
MySQLFreeResult(res);
MySQLClose(conn);

Vollständige Dokumentation: std.db.mysql

std.db.redis

Redis-Client über das RESP-Protokoll (Redis Serialization Protocol, TCP-Port 6379). Unterstützt alle Redis-Datenstrukturen: Strings, Lists, Hashes, Sets, Sorted Sets, Streams sowie Pub/Sub, Pipelining und TTL-Verwaltung.

import std.db.redis;

var conn: RedisConn := RedisConnect("127.0.0.1", 6379);

RedisSet(conn, "session:42", "user_data_json");
RedisExpire(conn, "session:42", 3600);

var val: pchar := RedisGet(conn, "session:42");
PrintStr(val);

RedisClose(conn);

Vollständige Dokumentation: std.db.redis


Verwandte Units

  • std.net.mongo — MongoDB Wire Protocol (im Netzwerk-Namespace, da dokumentenbasiert)
  • std.hash — Passwort-Hashing für eigene Benutzerverwaltung in Datenbanken
  • std.json — JSON-Serialisierung für Redis-Werte oder MySQL-JSON-Spalten