Il progetto libSQL ha cercato di creare un fork del sistema di gestione di database SQLite, focalizzandosi sull'apertura alla partecipazione degli sviluppatori della comunità e sulla promozione di innovazioni che vadano oltre l'uso originale di SQLite. Tra le motivazioni per la creazione del fork c'è la politica piuttosto rigida di SQLite riguardo all'accettazione di codice di terzi dalla comunità, in presenza della necessità di promuovere miglioramenti. Il codice del fork è distribuito sotto la licenza MIT (SQLite è fornito come bene pubblico).
I creatori del fork intendono mantenere la compatibilità con l'SQLite principale e rispettare lo stesso livello di qualità, mantenendo un set di scenari di test e ampliandolo progressivamente con l'aggiunta di innovazioni. Per lo sviluppo di nuove funzionalità, si propone di offrire l'opzione di utilizzare il linguaggio Rust, mantenendo comunque la parte di base in linguaggio C. Qualora la politica del progetto principale SQLite dovesse cambiare riguardo all'accettazione delle modifiche, i sviluppatori di libSQL intendono trasferire le modifiche accumulate nel progetto principale e unirsi al suo sviluppo.
Tra le idee per possibili espansioni delle funzionalità di SQLite si menzionano:
- Integrazione di strumenti per costruire database distribuiti che operano a livello della libreria stessa, senza passare attraverso la replica delle modifiche nel filesystem (LiteFS) e senza lo sviluppo di un prodotto separato (dqlite, rqlite, ChiselStore).
- Ottimizzazione per l'uso di API asincrone, come l'interfaccia io_uring fornita dal kernel Linux.
- Possibilità di utilizzare SQLite nel kernel Linux, similmente al supporto nel kernel della macchina virtuale eBPF, per situazioni in cui è necessario salvare set di dati dal kernel che non possono essere contenuti nella memoria RAM.
- Supporto per funzioni definite dall'utente, scritte in qualsiasi linguaggio di programmazione e compilate in codice intermedio WebAssembly.
Fonte: opennet.ru
