Projekt libSQL podjął próbę stworzenia forka bazy danych SQLite, skoncentrowanego na otwartości dla udziału deweloperów z społeczności oraz promocji innowacji wykraczających poza pierwotne przeznaczenie SQLite. Jako przyczynę stworzenia forka podano dość sztywną politykę SQLite dotyczącą przyjmowania zewnętrznego kodu od społeczności, w obliczu potrzeby wprowadzenia ulepszeń. Kod forka jest udostępniany na licencji MIT (SQLite jest dostarczany jako dobra publiczne).
Twórcy forka zamierzają utrzymywać zgodność z główną wersją SQLite i trzymać się tego samego poziomu jakości, zachowując zestaw scenariuszy testowych oraz stopniowo rozszerzając go w miarę dodawania nowości. W celu rozwoju nowej funkcjonalności sugeruje się możliwość użycia języka Rust, zachowując jednocześnie część bazową w języku C. W przypadku zmiany polityki głównego projektu SQLite w zakresie akceptacji zmian, deweloperzy libSQL planują przenieść skumulowane zmiany do głównego projektu i zaangażować się w jego rozwój.
Wśród pomysłów na możliwe rozszerzenie funkcjonalności SQLite wymienia się:
- Integracja narzędzi do budowy rozproszonych baz danych, działających na poziomie samej biblioteki, a nie poprzez replikację zmian w systemie plików (LiteFS), oraz bez rozwoju oddzielnego produktu (dqlite, rqlite, ChiselStore).
- Optymalizacja do użycia asynchronicznych API, takich jak interfejs io_uring dostarczany przez jądro Linux.
- Możliwość użycia SQLite w jądrze Linux, w podobny sposób jak wsparcie w jądrze wirtualnej maszyny eBPF, w sytuacjach, gdy konieczne jest zachowanie w jądrze zestawów danych, które nie mieszczą się w pamięci RAM.
- Wsparcie dla funkcji definiowanych przez użytkownika, napisanych w dowolnych językach programowania i skompilowanych do pośredniego kodu WebAssembly.
Źródło: opennet.ru
