Veritabanı Yönetimi
Açık Kaynak

C++ SQLite HTTP Proxy & JSON Serializer

C++cpp-httplibSQLite3 C APIWinsock2nlohmann/json

Yerel bir SQLite veritabanı üzerinde ham SQL sorgularını çalıştıran ve elde edilen imleçleri (cursor) dinamik olarak yapılandırılmış JSON verilerine serileştiren, statik olarak derlenmiş, şemadan bağımsız (schema-agnostic) HTTP daemon'u.

Teknoloji Yığını

C++cpp-httplibSQLite3 C APIWinsock2nlohmann/json

Sistem Metrikleri

Geleneksel backend çalışma zamanlarındaki (Node.js/JVM) ağır Garbage Collection duraklamaları atlanarak doğrudan native makine koduna derlemeyle elde edilen son derece düşük gecikme süresi (low latency)
Sonuç seti iterasyonu sırasında `sqlite3_column_text` raw pointer'larının kopyalama yapılmadan (zero-copy) doğrudan JSON response buffer'ına dökülmesi

Bunu Neden İnşa Ettim?

"Frontend uygulamalarını veya hafif ağ istemcilerini doğrudan SQLite ile haberleştirmek genellikle ağır native driver bağlamaları (bindings) veya karmaşık ORM'ler gerektirir. Bu bağımsız C++ daemon'unu yüksek performanslı bir aracı (proxy) olarak tasarladım. Altta yatan SQLite motorunu standart HTTP üzerinden dışa açarak, istemcilerin native veritabanı state'ini yönetmeye gerek kalmadan ham SQL string'leri göndermesine ve temiz JSON veri yapıları almasına olanak tanır."

Mimari & Kararlar

Çekirdek HTTP çoğullama (multiplexing) işlemleri `cpp-httplib` kütüphanesi üzerinden yürütülür. Dağıtım sırasında 'address-in-use' hatalarını önlemek için başlatma (initialization) rutini, Windows Socket API'sine (`Winsock2`) doğrudan kanca atar ve müsait bir TCP portunu kilitlemek için `bind()` üzerinden ağ arayüzlerini sırayla tarar (port probing). Veritabanı motoru SQLite3 C API'sini yoğun şekilde kullanır. Önceden tanımlanmış veri modelleri olmadan (schema-agnostic) rastgele SQL sorgularını işleyebilmek için yürütme döngüsü; çalışma zamanında `sqlite3_column_count` ve `sqlite3_column_name` kullanarak sonuç şemasını (result schema) dinamik olarak analiz eder ve ham C-string işaretçilerini HTTP yanıtı döndürülmeden önce doğrudan bir `nlohmann/json` matrisine haritalar.

Temel Özellikler

  • 01.Rastgele SQL sonuç setlerini (result sets) doğrudan JSON matrislerine haritalayan, şemadan bağımsız (schema-agnostic) dinamik yürütme motoru
  • 02.Windows Socket API (Winsock2) kullanılarak native işletim sistemi seviyesinde TCP port taraması (probing) ve tahsisi
  • 03.Sistem seviyesindeki tablo yansımalarının (reflection) (`sqlite_master`) özel HTTP uç noktaları üzerinden dışa aktarımı
  • 04.SQLite imleç iterasyonuna (cursor iteration) doğrudan entegre edilmiş, `cpp-httplib` kullanan thread-safe istek çoğullaması (request multiplexing)