Proiectul libSQL a avut ca scop crearea unui fork al SGBD-ului SQLite, axat pe deschiderea pentru implicarea dezvoltatorilor din comunitate și promovarea inovațiilor care depășesc scopul inițial al SQLite. Motivul pentru crearea fork-ului este politica destul de strictă a SQLite în ceea ce privește primirea codului terț din partea comunității, având în vedere necesitatea de a promova îmbunătățiri. Codul fork-ului este distribuit sub licența MIT (SQLite este livrat ca domeniu public).
Creatorii fork-ului intenționează să mențină compatibilitatea cu principalul SQLite și să respecte același nivel de calitate, păstrând setul de scenarii de testare și extinzându-l treptat pe măsură ce sunt adăugate inovații. Pentru dezvoltarea noii funcționalități, se propune oferirea posibilității de utilizare a limbajului Rust, păstrând în același timp partea de bază în limbajul C. În cazul în care politica proiectului principal SQLite se schimbă în ceea ce privește primirea modificărilor, dezvoltatorii libSQL intenționează să transfere modificările acumulate în proiectul principal și să contribuie la dezvoltarea acestuia.
Printre ideile pentru extinderea funcționalității SQLite se menționează:
- Integrarea de instrumente pentru construirea bazelor de date distribuite, care funcționează la nivelul bibliotecii în sine, nu prin replicarea modificărilor în sistemul de fișiere (LiteFS), și fără dezvoltarea unui produs separat (dqlite, rqlite, ChiselStore).
- Optimizarea pentru utilizarea API-urilor asincrone, cum ar fi interfața io_uring furnizată de nucleul Linux.
- Posibilitatea de a utiliza SQLite în nucleul Linux, similar cu suportul în nucleul mașinii virtuale eBPF, pentru situațiile în care este necesar să se păstreze din nucleu seturi de date care nu se încap în memoria RAM.
- Suport pentru funcții definite de utilizator, scrise în orice limbaj de programare și compilate în cod intermediar WebAssembly.
Sursa: opennet.ro
