Проектът libSQL се опитва да създаде fork на СУБД SQLite, насочен към отвореност за участие на разработчици от общността и промотиране на иновации, които излизат извън първоначалната цел на SQLite. Причината за създаването на fork е относително строгата политика на SQLite относно приемането на външен код от общността, при наличието на необходимост от внедряване на подобрения. Кодът на fork-а се разпространява под MIT лиценз (SQLite се предлага като обществено достояние).
Създателите на fork-а имат за цел да подържат съвместимост с основния SQLite и да се придържат към същото ниво на качество, запазвайки набора от тестови сценарии и постепенно го разширявайки с добавянето на иновации. За разработката на нова функционалност се предлага да се предостави възможност за използване на програмния език Rust, като основната част продължава да бъде на езици C. В случай на промяна на политиката на основния проект SQLite за приемане на промени, разработчиците на libSQL имат намерение да прехвърлят натрупаните промени в основния проект и да се включат в неговото развитие.
Сред идеите за възможно разширяване на функционалността на SQLite се споменават:
- Интеграция на средства за изграждане на разпределени бази данни, работещи на ниво самата библиотека, а не чрез репликация на промените в файловата система (LiteFS) и без разработване на отделен продукт (dqlite, rqlite, ChiselStore).
- Оптимизация за използване на асинхронни API, като предоставения от ядрото на Linux интерфейс io_uring.
- Възможност за използване на SQLite в ядрото на Linux, по аналогия с поддръжката в ядрото на виртуалната машина eBPF, за ситуации, в които е необходимо да се съхраняват набори от данни, които не се побират в оперативната памет.
- Поддръжка на определяеми от потребителите функции, написани на всякакви програмни езици и компилирани в междинен код WebAssembly.
Източник: opennet.ru
