Minisqlite: SQLite'ın Rust ile Yeniden Yazılmış Hali
Minisqlite, SQLite'ın disk formatıyla tam uyumlu, 200 bin satırlık, unsafe içermeyen saf Rust yeniden uygulaması; 5.650 testle doğrulanmış.
Minisqlite, SQLite'ın SQL dilini, sorgu planlayıcısını, yürütücüsünü ve depolama motorunu -resmi disk dosya formatına kadar- tamamen Rust ile yeniden uygulayan bir kütüphane. sqlite3'ün yazdığı .db dosyalarını açabiliyor, kendi yazdığı dosyaları da sqlite3 okuyabiliyor; WAL modu, UTF-16 kodlamaları, auto-vacuum ve overflow zincirleri gibi zor senaryolar dahil.
Proje yaklaşık 200 bin satır Rust kodundan, 14 crate'ten ve 5.650 testten oluşuyor; tek dış bağımlılığı var ve kütüphane kodunda unsafe kullanılmıyor. Kamuya açık API kasıtlı olarak dar tutulmuş: tek bir Connection tipi ve open/execute/query gibi dört metot.
Kapsam oldukça geniş: join türleri, pencere fonksiyonları, tetikleyiciler, upsert, yabancı anahtar kısıtlamaları, ATTACH ile çoklu veritabanı sorguları, PRAGMA'lar ve JSON fonksiyon ailesi destekleniyor. Katmanlı mimari (parser, planlayıcı, yürütücü, b-tree, pager, WAL, dosya formatı) her sorumluluğu ayrı bir crate'e bölüyor.
Mühendisler için önemi şu: C bağımlılığı olmadan, bellek güvenliği garantili ve SQLite'ın disk formatıyla bayt düzeyinde uyumlu bir alternatif motor arayanlar için somut bir referans sunuyor; ayrıca Rust'ın büyük ölçekli sistem yazılımlarında ne kadar olgunlaştığının bir göstergesi.