irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Rust dünyasında web geliştirme denilince akla gelen ilk isimlerden biri Actix-web'dir. Yıllardır TechEmpower gibi bağımsız hız testlerinde dünyanın en üst sıralarında yer almasıyla ün kazanmıştır.
Actix-web; tip güvenliği, hız ve genişletilebilirlik üzerine kurulmuş, asenkron bir web framework'üdür.
Rust
Actix-web; tip güvenliği, hız ve genişletilebilirlik üzerine kurulmuş, asenkron bir web framework'üdür.
1. Mimari Yapı ve Hızın Kaynağı
Actix-web, başlangıçta Rust'ın Actor Model kütüphanesi üzerine inşa edilmişti (ismini buradan alır), ancak modern sürümleri doğrudan Tokio runtime'ı üzerinde çalışır. Her bağlantı birer asenkron "Task" olarak işlenir, bu da sunucunun aynı anda on binlerce isteği bloklanmadan yönetmesini sağlar.2. Temel Bileşenler
Bir Actix-web uygulaması üç ana parçadan oluşur:- App: Uygulamanızın yapılandırması (route'lar, middleware'ler).
- HttpServer: Gelen bağlantıları kabul eden sunucu katmanı.
- Handlers: Belirli bir yola (route) gelen isteği işleyen fonksiyonlar.
Kod:
use actix_web::{get, App, HttpResponse, HttpServer, Responder};
#[get("/merhaba")]
async fn merhaba() -> impl Responder {
HttpResponse::Ok().body("Actix-web dünyasına hoş geldiniz!")
}
#[actix_web::main] // Tokio tabanlı asenkron giriş noktası
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().service(merhaba)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
3. Extractors: Veriye Güvenli Erişim
Actix-web'in en sevilen özelliklerinden biri Extractors (Ayıklayıcılar) sistemidir. Fonksiyon parametrelerinde ne istediğinizi belirtirsiniz, Actix-web bunu sizin için JSON'dan, URL parametrelerinden veya Header'lardan ayıklar.Rust
Kod:
use actix_web::web;
use serde::Deserialize;
#[derive(Deserialize)]
struct Bilgi {
ad: String,
}
// JSON verisini otomatik olarak 'Bilgi' struct'ına dönüştürür
async fn kullanıcı_ekle(item: web::Json<Bilgi>) -> String {
format!("Hoş geldin {}!", item.ad)
}
4. State Management (Uygulama Durumu)
Veritabanı bağlantı havuzları veya paylaşılan ayarlar gibi verileri tüm route'lara güvenli bir şekilde aktarmak içinweb::Data kullanılır. Bu yapı arka planda bir Arc (Atomic Reference Counted) gibi çalışır.5. Actix-web Neden Tercih Edilmeli?
| Avantaj | Açıklama |
| İnanılmaz Hız | Minimal ek yük (overhead) ve optimize edilmiş HTTP motoru. |
| Tip Güvenliği | Hatalı veri tipleri daha derleme aşamasında yakalanır. |
| Zengin Ekosistem | Serde (JSON), Diesel/SQLx (Veritabanı) ve JWT desteği çok güçlüdür. |
| Middleware | Log tutma, kimlik doğrulama gibi işlemleri kolayca araya sokabilirsiniz. |