Проектът 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
