C++ SQLite RESTful Library API
Kütüphane işlemlerini yönetmek için C++ ile yazılmış, veritabanı kalıcılığını doğrudan SQLite3 C API'si üzerinden sağlayan yüksek performanslı ve statik olarak derlenmiş REST API.
Teknoloji yığını
- Diller
- Çatılar & kütüphaneler
- Araçlar
Performans & metrikler
- Doğrudan native makine koduna derlenerek elde edilen sıfır ek yüke sahip (zero-overhead) HTTP multiplexing ve JSON ayrıştırması
- Veritabanı imleçlerini (cursors) ve statement yaşam döngülerini C-seviyesi raw pointer'lar üzerinden doğrudan yöneterek ORM soyutlama (abstraction) maliyetlerini elimine eder
Neden geliştirdim?
Spring Boot veya Node.js gibi framework'lerin getirdiği bellek ek yükü (overhead) ve Garbage Collection (GC) duraklamaları olmadan ilişkisel verileri yönetecek bağımlılıksız bir backend arayüzüne ihtiyacım vardı. Bu proje, HTTP yönlendirmesini, JSON serileştirmesini ve deterministik SQL yürütmesini doğrudan bellek seviyesinde orkestre ederek saf C++ ile nasıl yüksek eşzamanlılıklı (highly concurrent) bir REST mimarisi inşa edileceğini gösterir.
Mimari & kararlar
Uygulama, işletim sistemi ağ arayüzlerine multithreaded bir HTTP dinleyicisi bağlamak için cpp-httplib kütüphanesini kullanır. Gelen JSON payload'ları nlohmann/json aracılığıyla katı tipli (strictly typed) C++ nesnelerine (User, Book) dönüştürülür. Bellek güvenliğini sağlamak ve SQL injection saldırılarını mutlak surette engellemek için, tüm veritabanı işlemleri raw sorgu çalıştırmayı bypass eder; bunun yerine ham işaretçiler (raw pointers) kullanılarak SQLite'ın C seviyesindeki 'prepared statement' yaşam döngüsü (sqlite3_prepare_v2, sqlite3_bind_*, sqlite3_step, sqlite3_finalize) uygulanır.
Temel özellikler
- 01İlişkisel kütüphane varlıkları (entity) üzerinde CRUD işlemlerini yöneten multithreaded RESTful uç noktalar (endpoints)
- 02Zararlı SQL injection payload'larını tamamen bloke eden parametrik SQLite C API entegrasyonu
- 03JSON verilerini doğrudan C++ Nesne Yönelimli (OOP) domain modellerine haritalayan bellek içi (in-memory) serileştirme
- 04Header-only C++ ağ kancaları kullanılarak sağlanan otonom HTTP yönlendirmesi