Bunu Neden İnşa Ettim?
"Backend geliştirirken sürekli tekrarlayan CRUD endpoint'leri ve DTO boilerplate'leri yazmak ciddi bir zaman kaybı. Bu sürtünmeyi ortadan kaldırmak için, sadece tablo yapısını verip anında güvenli bir REST API ayağa kaldıran, üstelik kendi istemcisiyle (client) gelen tak-çalıştır bir kütüphane yazmak istedim. Hızlı prototipleme ve gömülü (embedded) sistemler için ideal bir çözüm."
Mimari & Kararlar
Kütüphane Axum ve Tokio mimarisi üzerinde koşuyor. Veritabanı state'i, asenkron handler'lar arasında güvenle paylaşılabilmesi için `Arc<Mutex<Connection>>` ile sarmalandı. Sunucu motoru (`EasyDB`), tanımlanan tablolar üzerinde döngüye girerek Axum router'ına dinamik olarak endpoint'ler enjekte eder. Ağ I/O işlemleri asenkron çalışırken, SQLite'ın doğası gereği senkron olan disk okuma/yazma operasyonları thread-safe bir lock mekanizması ile yönetilir. Eşzamanlı olarak, kütüphane ile entegre gelen `EasyClient`, `reqwest` altyapısını kullanarak doğrudan bu API'yi tüketecek şekilde yapılandırılmıştır.
Temel Özellikler
- 01.Dinamik endpoint enjeksiyonu ile sıfır-boilerplate (zero-boilerplate) REST API üretimi
- 02.Derlenmiş paket içinde gelen ve API'yi doğrudan tüketebilen asenkron `EasyClient` modülü
- 03.Tablo ve kolon isimleri üzerinden yapılabilecek Identifier Injection saldırılarına karşı katı sanitization katmanı
- 04.SQL Injection riskini tamamen ortadan kaldıran dinamik parameterized query (hazırlanmış ifade) altyapısı
- 05.URL parametreleri üzerinden (`?_sort=age&_order=desc`) çalışan otonom filtreleme ve sıralama motoru