Het libSQL-project is een poging om een fork van de SQLite-database te creƫren, gericht op openheid voor deelname van ontwikkelaars uit de gemeenschap en het bevorderen van innovaties die verder gaan dan de oorspronkelijke doeleinden van SQLite. Een reden voor het creƫren van de fork is het vrij strenge beleid van SQLite met betrekking tot de acceptatie van externe code uit de gemeenschap, terwijl er een behoefte is aan het bevorderen van verbeteringen. De code van de fork wordt verspreid onder de MIT-licentie (SQLite wordt geleverd als openbaar domein).
De makers van de fork zijn van plan om compatibiliteit te behouden met de hoofdcategorie SQLite en hetzelfde kwaliteitsniveau aan te houden, terwijl ze de set testscenario's behouden en deze geleidelijk uitbreiden naarmate er innovaties worden toegevoegd. Voor de ontwikkeling van nieuwe functionaliteit wordt voorgesteld om de mogelijkheid te bieden de programmeertaal Rust te gebruiken, terwijl de kern in de programmeertaal C blijft. Mocht het beleid van het hoofdproject SQLite met betrekking tot de acceptatie van wijzigingen veranderen, dan zijn de ontwikkelaars van libSQL van plan om de verzamelde wijzigingen naar het hoofdproject over te brengen en deel te nemen aan de verdere ontwikkeling.
Onder de ideeƫn voor mogelijke uitbreiding van de functionaliteit van SQLite worden genoemd:
- Integratie van middelen voor het bouwen van gedistribueerde databases die op het niveau van de bibliotheek zelf werken, en niet via replicatie van wijzigingen in het bestandssysteem (LiteFS), en zonder de ontwikkeling van een apart product (dqlite, rqlite, ChiselStore).
- Optimalisatie voor het gebruik van asynchrone API's, zoals die geleverd door de Linux-kernel met de io_uring-interface.
- De mogelijkheid om SQLite in de Linux-kernel te gebruiken, vergelijkbaar met de ondersteuning in de eBPF-virtuele machinekernel, voor situaties waarin het nodig is om datasets vanuit de kernel op te slaan die niet in het werkgeheugen passen.
- Ondersteuning voor door de gebruiker gedefinieerde functies, geschreven in elke programmeertaal en gecompileerd naar WebAssembly-tussencode.
Bron: opennet.ru
