Strawberry & Sugar: Actix-Web & SQLx Yüksek Performanslı API
Actix-Web ve SQLx üzerine inşa edilmiş; compile-time sorgu doğrulaması, Argon2 şifreleme ve katı bir rol tabanlı erişim kontrolü (RBAC) sunan yüksek performanslı Rust backend mimarisi.
Teknoloji yığını
- Çatılar & kütüphaneler
Performans & metrikler
- Veritabanı bağlantı havuzu (connection pooling)
PgPoolOptionsile asenkron yönetiliyor, bu sayede yüksek I/O altında bile thread'ler bloklanmıyor - Uygulama state'i (
AppState) Actix-Web'inweb::Datawrapper'ı üzerinden Arc (Atomic Reference Counting) mantığıyla tüm worker thread'lere güvenli ve kopyasız (zero-copy) dağıtılıyor - Ağır CPU gücü gerektiren Argon2 şifre doğrulama işlemleri asenkron runtime'ı tıkamaması için özel olarak optimize edildi
Neden geliştirdim?
Standart web framework'leri genellikle performanstan ödün verir ya da bellek güvenliği (memory safety) tarafında zayıftır. Amacım, tamamen Rust tabanlı, sıfır maliyetli soyutlamalar (zero-cost abstractions) sunan Actix-Web ve SQLx kullanarak aşırı hızlı, bellek sızıntısı olmayan ve katı bir rol tabanlı yetkilendirme (RBAC) sunan güvenli bir backend mimarisi kurmaktı. Özellikle veritabanı işlemlerinin derleme zamanında (compile-time) kontrol edilmesi benim için kritikti.
Mimari & kararlar
Mimari, Actix-Web'in asenkron çalışma modeline ve SQLx'in compile-time query doğrulama yeteneklerine dayanıyor. Kimlik doğrulama süreci, Argon2 ile şifrelerin hash'lenmesi ve JWT'lerin HttpOnly çerezlere gömülmesiyle sağlanıyor. Route güvenliğini ayrı bir middleware yazmak yerine, Actix'in FromRequest trait'ini implemente eden AuthenticatedUser extractor'ı üzerinden çözdüm; bu sayede yetkisiz istekler controller katmanına ulaşmadan doğrudan bellek seviyesinde reddediliyor. Postgres üzerindeki custom ENUM tipleri (user_role, petition_status) Rust struct'ları ile birebir eşleşmiş durumda ve kritik admin işlemleri ACID standartlarına uygun olarak transaction (tx) blokları içerisinde yürütülüyor.
Temel özellikler
- 01Actix
FromRequesttrait'i ile yazılmış otonom JWT ve Cookie tabanlı kimlik doğrulama extractor'ı - 02PostgreSQL custom tipleriyle birebir eşleşen, hiyerarşik Rol Tabanlı Erişim Kontrolü (RBAC - Mutlak İrade, Yargıç vb.)
- 03SQLx kullanılarak derleme zamanında (compile-time) doğrulanan, SQL injection riskini sıfıra indiren asenkron veritabanı sorguları
- 04Admin yetkisiyle yapılan her kritik değişikliği veritabanı transaction'ları ile bütünleşik olarak kaydeden Audit Log altyapısı
- 05Gelen veri yapılarını (payload) controller seviyesinin hemen sınırında filtreleyen
validatorcrate entegrasyonu
Teknik değerlendirme
Projenin en güçlü yanı, veritabanı ile backend kodunun adeta tek bir vücut gibi çalışması. SQL sorgularını metin olarak yazıp geçmek yerine SQLx ile derleme aşamasında doğrulamak, production ortamında yaşanabilecek runtime hatalarını kökünden çözüyor. Ayrıca Actix'in FromRequest mekanizmasını kullanarak route korumasını (guard) doğrudan parametre enjeksiyonuna çevirmek kodu inanılmaz temiz tutuyor; yetki kontrollerinin kazara atlanması gibi güvenlik zafiyetlerini donanımsal düzeyde imkansız hale getiriyor.