İçeriğe geç
Tüm projeler
Backend & APIAçık kaynak

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ı

Diller
Çatılar & kütüphaneler

Performans & metrikler

  • Veritabanı bağlantı havuzu (connection pooling) PgPoolOptions ile asenkron yönetiliyor, bu sayede yüksek I/O altında bile thread'ler bloklanmıyor
  • Uygulama state'i (AppState) Actix-Web'in web::Data wrapper'ı ü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

  1. 01Actix FromRequest trait'i ile yazılmış otonom JWT ve Cookie tabanlı kimlik doğrulama extractor'ı
  2. 02PostgreSQL custom tipleriyle birebir eşleşen, hiyerarşik Rol Tabanlı Erişim Kontrolü (RBAC - Mutlak İrade, Yargıç vb.)
  3. 03SQLx kullanılarak derleme zamanında (compile-time) doğrulanan, SQL injection riskini sıfıra indiren asenkron veritabanı sorguları
  4. 04Admin yetkisiyle yapılan her kritik değişikliği veritabanı transaction'ları ile bütünleşik olarak kaydeden Audit Log altyapısı
  5. 05Gelen veri yapılarını (payload) controller seviyesinin hemen sınırında filtreleyen validator crate 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.