Backend Geliştirme
Açık Kaynak

Strawberry & Sugar: Actix-Web & SQLx Yüksek Performanslı API

RustSQLActix-WebPostgreSQLSQLxArgon2JWTValidator

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ı

RustSQLActix-WebPostgreSQLSQLxArgon2JWTValidator

Sistem Metrikleri

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

Bunu Neden İnşa Ettim?

"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

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