Das libSQL-Projekt begann mit der Entwicklung einer Abzweigung des SQLite-DBMS

Das libSQL-Projekt hat versucht, einen Zweig des SQLite-DBMS zu erstellen, der sich auf die Offenheit für die Beteiligung von Community-Entwicklern und die Förderung von Innovationen konzentriert, die über den ursprünglichen Zweck von SQLite hinausgehen. Der Grund für die Erstellung des Forks ist die recht strenge Richtlinie von SQLite, Code von Drittanbietern aus der Community zu akzeptieren, wenn Verbesserungsbedarf besteht. Der Fork-Code wird unter der MIT-Lizenz vertrieben (SQLite wird als Public Domain veröffentlicht).

Die Entwickler des Forks beabsichtigen, die Kompatibilität mit dem Haupt-SQLite aufrechtzuerhalten und das gleiche Qualitätsniveau beizubehalten, indem sie eine Reihe von Testfällen beibehalten und diese schrittweise erweitern, wenn Innovationen hinzugefügt werden. Um neue Funktionen zu entwickeln, wird vorgeschlagen, die Möglichkeit zur Verwendung der Rust-Sprache bereitzustellen und gleichzeitig den grundlegenden Teil in der C-Sprache beizubehalten. Wenn sich die Richtlinie des SQLite-Hauptprojekts bezüglich der Annahme von Änderungen ändert, beabsichtigen die libSQL-Entwickler, die gesammelten Änderungen auf das Hauptprojekt zu übertragen und sich an dessen Entwicklung zu beteiligen.

Zu den Ideen für eine mögliche Erweiterung der SQLite-Funktionalität zählen:

  • Integration von Tools zum Aufbau verteilter Datenbanken, die auf der Ebene der Bibliothek selbst arbeiten, und nicht durch Replikation von Änderungen im Dateisystem (LiteFS) und ohne die Entwicklung eines separaten Produkts (dqlite, rqlite, ChiselStore).
  • Optimierung für die Verwendung asynchroner APIs, wie z. B. der vom Linux-Kernel bereitgestellten io_uring-Schnittstelle.
  • Die Möglichkeit, SQLite im Linux-Kernel zu verwenden, ähnlich der eBPF-Kernelunterstützung für virtuelle Maschinen, für Situationen, in denen es notwendig ist, Datensätze aus dem Kernel zu speichern, die nicht in den RAM passen.
  • Unterstützung für benutzerdefinierte Funktionen, die in einer beliebigen Programmiersprache geschrieben und in WebAssembly-Zwischencode kompiliert wurden.

Source: opennet.ru

Kommentar hinzufügen