irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Rust ekosistemi olgunlaştıkça, web geliştirme alanında "en iyi" framework sorusu daha çok "hangi kullanım senaryosu?" sorusuna dönüşmeye başladı. Rust'ın performans ve güvenlik vaadini web dünyasına taşıyan üç dev isim var: Actix-web, Rocket ve Axum.
Bu rehberde, projeniz için doğru olanı seçmenize yardımcı olacak detaylı bir karşılaştırma yapacağız.
Öne Çıkan Özellikleri:
Öne Çıkan Özellikleri:
Öne Çıkan Özellikleri:
} [/CODE]
Bu rehberde, projeniz için doğru olanı seçmenize yardımcı olacak detaylı bir karşılaştırma yapacağız.
1. Actix-web: Performans Canavarı
Actix-web, Rust dünyasının en eski ve en performanslı frameworklerinden biridir. TechEmpower benchmark testlerinde genellikle listenin en başında yer alır. "Actor" modelinden esinlenen kökleri olsa da, bugün tamamen tip güvenli ve güçlü bir web aracıdır.Öne Çıkan Özellikleri:
- Hız: İnanılmaz derecede hızlıdır.
- Ecosystem: Çok geniş bir kütüphane desteği ve dokümantasyonu vardır.
- Type-safe: Form verilerinden JSON'a kadar her şey tip kontrolünden geçer.
Kod:
use actix_web::{get, App, HttpServer, Responder};
#[get("/")] async fn index() -> impl Responder { "Merhaba Actix-web!" }
#[actix_web::main] async fn main() -> std::io::Result<()> { HttpServer::new(|| App::new().service(index)) .bind("127.0.0.1:8080")? .run() .await }
2. Rocket: Kullanım Kolaylığı ve Şıklık
Rocket, "kod yazarken keyif alma" odağıyla geliştirilmiştir. Rust'ın makro sistemini en efektif kullanan frameworktür. Boilerplate (basmakalıp) kodları minimuma indirir ve geliştiriciye çok temiz bir API sunar.Öne Çıkan Özellikleri:
- Geliştirici Deneyimi: Kurulumu ve kullanımı en kolay olanıdır.
- Otomatik Validasyon: Makrolar sayesinde form doğrulamaları çok pratiktir.
- Eski Hali: Eskiden sadece Nightly Rust ile çalışıyordu ancak artık Stable Rust ile tam uyumludur.
Kod:
#[macro_use] extern crate rocket;
#[get("/")] fn index() -> &'static str { "Merhaba Rocket!" }
#[launch] fn rocket() -> _ { rocket::build().mount("/", routes![index]) }
3. Axum: Modern ve Modüler (Tokio Ekosistemi)
Axum, Rust'ın asenkron çalışma motoru olan Tokio ekibi tarafından geliştirilmiştir. Şu an toplulukta en çok heyecan yaratan frameworktür. "Tower" adı verilen modüler bir yapı üzerine inşa edilmiştir.Öne Çıkan Özellikleri:
- Tokio Uyumu: Tokio kütüphaneleriyle mükemmel çalışır.
- Macro-less: Rocket'ın aksine, kodun arkasında neler döndüğünü anlamak için devasa makrolara ihtiyaç duymaz.
- Gelecek Vaadi: Çok hızlı büyüyor ve standart haline gelme yolunda ilerliyor.
Kod:
use axum::{routing::get, Router};
#[tokio::main] async fn main() { let app = Router::new().route("/", get(|| async { "Merhaba Axum!" }));
[CODE]axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
4. Karşılaştırma Tablosu
| Özellik | Actix-web | Rocket | Axum |
| Performans | En Yüksek | Yüksek | Yüksek |
| Öğrenme Eğrisi | Orta | Kolay | Orta |
| Makro Kullanımı | Az | Çok Yoğun | Çok Az |
| Modülerlik | Orta | Düşük | Çok Yüksek |
| Popülerlik | Köklü/Yaygın | Çok Popüler | Hızla Yükselen |
5. Hangisini Seçmelisiniz?
- Actix-web seçin; eğer mikro-servislerinizde milisaniyelerin bile önemi varsa ve oturmuş, binlerce testten geçmiş bir yapı arıyorsanız.
- Rocket seçin; eğer hızlıca bir prototip çıkarmak istiyorsanız ve Rust'ın makro büyülerini (magic) seviyorsanız. Yeni başlayanlar için en nazik frameworktür.
- Axum seçin; eğer modern Rust standartlarına (Tokio, Tower) tam uyum sağlamak, modüler bir yapı kurmak ve geleceğe yatırım yapmak istiyorsanız. Şahsen benim önerim profesyonel projeler için Axum'dur.