Bunu Neden İnşa Ettim?
"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)
- 02.Zararlı SQL injection payload'larını tamamen bloke eden parametrik SQLite C API entegrasyonu
- 03.JSON verilerini doğrudan C++ Nesne Yönelimli (OOP) domain modellerine haritalayan bellek içi (in-memory) serileştirme
- 04.Header-only C++ ağ kancaları kullanılarak sağlanan otonom HTTP yönlendirmesi