· kaynak dev.to (home feed)
LuaDB, saf Lua ile B+Tree, WAL ve Postgres wire desteği sunan gömülebilir bir RDBMS yayınladı
Bir geliştirici, tamamen saf Lua ile yazılmış, B+Tree indeksler, write-ahead logging, ACID transaction'lar, PostgreSQL wire protokol sunucusu ve S3 dahil takılabilir depolama özelliklerine sahip gömülebilir bir SQL veritabanı olan LuaDB'yi yayınladı.

Bir geliştirici, sıfırdan tamamen Lua ile yazılmış, C extension, native library ya da başka harici bağımlılığı olmayan gömülebilir bir SQL veritabanı motoru olan LuaDB'yi yayınladı. Proje, Ağustos 2026 sonunda dev.to'da yayınlanan iki yazıyla tanıtıldı ve kaynak kodu GitHub'da jncastilho/luadb adresinde erişilebilir.
Sayfalar, B+Tree'ler ve write-ahead log
Motor, verileri slotted bir düzenle arranged dört kilobaytlık binary sayfalarda saklıyor ve hem birincil hem de ikincil indeksler için B+Tree yapıları kullanıyor. Dayanıklılık write-ahead logging ile sağlanıyor: transaction'lar açık BEGIN, COMMIT ve ROLLBACK ifadeleriyle yönetiliyor ve yazar sonucu ACID uyumlu olarak nitelendiriyor.
SQL katmanı temel sorguların ötesine geçiyor. Yazılardan biri, -> ve ->> operatörleriyle native JSON ve JSONB çıkarmayı listeliyor; örneğin bir adres alanından şehir gibi iç içe bir değeri çekmek. Buna ek olarak ON DELETE CASCADE ile foreign key'ler, ALTER TABLE tabanlı migration'lar ve common table expression'lar için WITH clause'lar da mevcut.
PostgreSQL wire protokolü konuşuyor
Saf Lua bir proje için en alışılmadık özellik, PostgreSQL wire protokolünü uygulayan yerleşik bir sunucu. luajit bin/luadb_server.lua komutunu çalıştırmak gateway'i başlatıyor; bunun ardından psql veya DBeaver gibi standart Postgres client'ları veritabanına bağlanıp sorgu gönderebiliyor. Pratikte bu, herhangi bir yerde Postgres kurulumu olmadan, Lua'ya gömülü bir veritabanının günlük operasyonel araçlarla incelenebilmesi anlamına geliyor.
Takılabilir depolama ve replication
Depolama, takılabilir bir VFS katmanının arkasında duruyor. Yazıda üç backend belirtiliyor: yerel disk, bellek içi RAM ve AWS SigV4 ile kimlik doğrulanan Amazon S3. Bu son backend, aynı motorun veriyi doğrudan object storage'a yazabilmesi sayesinde cloud-sync kullanım senaryosunu makul kılan şey.
İkinci yazı, ilkinin atladığı bir özellik ekliyor: hinted-handoff mekanizması kullanan multi-master cluster replication. Buna karşılık, common table expression'lar yalnızca ilk yazının özellik listesinde yer alıyor. Dolayısıyla iki yazı kapsam konusunda hafifçe farklılaşıyor ve güncel sürümün gerçekte neyi desteklediği konusunda kesin referans repository'nin kendisi.
Oyunlar ve gömülü runtime'lara yönelik
Belirtilen motivasyon taşınabilirlik. SQLite'ı gömmek normalde native shared library derlemek veya C binding'ler sürdürmek anlamına geliyor; yazar bunu LÖVE, Roblox, OpenResty veya küçük gömülü cihazlar gibi platformlarda bir sürtünme olarak tanımlıyor. LuaDB saf Lua olduğu için Lua'nın çalıştığı her yerde çalışıyor: yazılar Lua 5.1 ve sonrası için, 5.4, 5.5 ve LuaJIT dahil destek iddiasında bulunuyor.
Yazar projeyi özellikle oyun kayıt dosyaları, durum takibi ve cloud senkronizasyonu için konumlandırıyor ve proje hakkında geri bildirim ile teknik soruları davet ediyor.
Neden önemli
Lua, oyun motorlarının, web sunucularının ve sayısız gömülü sistemin içinde yaygın olarak bulunuyor; ancak kalıcı yapılandırılmış depolama neredeyse her zaman bir native veritabanına bağlanmak anlamına geliyordu. Bağımlılıksız bir RDBMS bu dağıtım sorununu betik dosyalarını kopyalamaya indiriyor ve Postgres wire desteği sayesinde geliştiriciler canlı veriyi zaten kullandıkları araçlarla inceleyebiliyor. B+Tree'ler, WAL ve ACID semantiği, oyuncu ilerlemesini güvenle tutması beklenen bir motor için doğru temellerdir.
Açık sorular ise olgunluk ve performans. Yazılarda benchmark, load test veya üretim raporu yok ve her iki duyuru da henüz birkaç gün önce yapıldığından, şu an için tek anlamlı inceleme kodun kendisi. Yine de tek bir saf Lua paketinde gömülü motor, wire protokol sunucusu ve S3 uyumlu depolamanın bir arada olması, bu niş için alışılmadık ölçüde eksiksiz bir özellik seti.
- #lua
- #databases
- #sql
- #open-source
- #embedded