Das libSQL-Projekt versucht, einen Fork des SQLite-Datenbanksystems zu erstellen, der offen für die Beteiligung von Entwicklern aus der Community ist und Innovationen fördert, die über den ursprünglichen Zweck von SQLite hinausgehen. Als Grund für die Erstellung des Forks wird die recht strenge Politik von SQLite hinsichtlich der Annahme von Community-Code genannt, insbesondere wenn es darum geht, Verbesserungen voranzutreiben. Der Code des Forks wird unter der MIT-Lizenz verbreitet (SQLite wird als Public Domain angeboten).
Die Erschaffer des Forks beabsichtigen, die Kompatibilität mit dem ursprünglichen SQLite zu wahren und den gleichen Qualitätsstandard einzuhalten, wobei sie einen Satz von Testfällen beibehalten und diesen nach und nach erweitern werden, wenn neue Funktionen hinzukommen. Für die Entwicklung neuer Funktionen wird die Verwendung der Programmiersprache Rust vorgeschlagen, während der Kern weiterhin in C bleibt. Sollte sich die Politik des Hauptprojekts SQLite bezüglich der Annahme von Änderungen ändern, planen die Entwickler von libSQL, die gesammelten Änderungen in das Hauptprojekt zu übertragen und sich an dessen Weiterentwicklung zu beteiligen.
Zu den Ideen für mögliche Erweiterungen der Funktionalität von SQLite gehören:
- Integration von Mitteln zur Erstellung verteilter Datenbanken, die auf Bibliothekslevel arbeiten, anstatt Änderungen in der Dateisystem-Replikation durchzuführen (LiteFS), und ohne die Entwicklung eines separaten Produkts (dqlite, rqlite, ChiselStore).
- Optimierung für die Nutzung asynchroner APIs, wie sie durch die io_uring-Schnittstelle des Linux-Kernels bereitgestellt wird.
- Die Möglichkeit, SQLite im Linux-Kernel zu verwenden, ähnlich wie die Unterstützung im Kernel der eBPF-virtuellen Maschine, für Szenarien, in denen Datensätze, die den RAM überschreiten, aus dem Kernel gespeichert werden müssen.
- Unterstützung von benutzerdefinierten Funktionen, die in beliebigen Programmiersprachen geschrieben und in WebAssembly-Bytecode kompiliert sind.
Quelle: opennet.ru
