Il progetto libSQL ha tentato di creare un fork del DBMS SQLite, mirato all'apertura per la partecipazione degli sviluppatori della comunità e alla promozione di innovazioni che superano l'originaria destinazione di SQLite. Come motivo per la creazione del fork viene citata 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 con licenza MIT (SQLite è fornito come dominio pubblico).
I creatori del fork intendono mantenere la compatibilità con il principale SQLite e aderire allo stesso livello di qualità, preservando il set di scenari di test e ampliandolo gradualmente mentre vengono aggiunte innovazioni. Per lo sviluppo di nuove funzionalità, viene proposta la possibilità di utilizzare il linguaggio Rust, mantenendo però la parte fondamentale in linguaggio C. In caso di modifica della politica del progetto principale SQLite riguardo all'accettazione delle modifiche, gli sviluppatori di libSQL intendono trasferire le modifiche accumulate nel progetto principale e unirsi al suo sviluppo.
Tra le idee per un possibile ampliamento delle funzionalità di SQLite si citano:
- Integrazione di strumenti per la costruzione di database distribuiti, funzionanti a livello della libreria stessa, e non tramite la replicazione 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, analogamente al supporto nel kernel della macchina virtuale eBPF, per situazioni in cui è necessario mantenere dal kernel set di dati che non possono essere contenuti nella memoria.
- Supporto per funzioni definite dall'utente, scritte in qualsiasi linguaggio di programmazione e compilate in codice intermedio WebAssembly.
Fonte: opennet.ru
