Bu seçim her iki çerçeveye ilişkin mutlak bir yargı değildir. Bu, ölçülmemiş bir performans rakamıyla değil, burada kodda ve kamu kayıtlarında doğruladığımız bilgilerle belgelenen mimari bir uzlaşmadır.
Temeller
Axum tescilli hiçbir şey oluşturmaz: ara yazılımı için tower::Service'ye, aktarım için Hyper'a dayanır ve her türlü unsafekodunu yasaklar. Actix-web kendi ara katman yazılımı sistemini (Logger, Session, CORS), yerel HTTP/2'yi barındırır ve kendisi de TechEmpower Çerçeve Karşılaştırmasını hızın kanıtı olarak gösterir. Crates.io'da bugün Axum'un indirme sayısı 436 milyondan fazlayken, Actix-web'in indirme sayısı yaklaşık 78 milyondur; dezavantaj olarak neredeyse dört yıllık yaş farkına rağmen. Aurabase, ölçülmemiş bir performans rakamı için değil, on bir gerçek Cargo.toml deposunda doğrulanan Tower kompozisyonu için Axum'u seçti.
İki çerçeve, aynı Tokyo tabanı
Axum ve Actix-web, Rust'taki referans eşzamansız çalışma zamanı olan Tokio'da çalışır. Actix-web README bunu açık bir şekilde belirtmektedir — “Tam Tokio uyumluluğu” — ve resmi kod örneği, tarihsel actix çerçevesinden herhangi bir aktör kullanmamaktadır: #[get(...)]açıklamalı klasik bir async fn işleyicisi yeterlidir. "Actix-web mutlaka aktörlere ihtiyaç duyar" şeklindeki kafa karışıklığı artık mevcut API ile örtüşmüyor.
Axum, Tokyo'nun doğrudan yörüngesinde doğdu: depo, GitHub organizasyonu tokio-rs'e aittir ve resmi belgeleri açıktır - "axum, tokio ve hyper ile çalışacak şekilde tasarlanmıştır. Çalışma zamanı ve taşıma katmanı bağımsızlığı, en azından şimdilik bir hedef değildir. »
Yani bu, iki rakip çalışma zamanı arasında bir seçim değil, aynı eşzamansız motorun üzerine bir HTTP API oluşturmanın iki yolu arasında bir seçimdir. Bu karşılaştırma dört doğrulanabilir alanı kapsıyor - ara katman yazılımı modeli, bildirilen bellek güvenliği, yerel HTTP yüzeyi, Crates.io ve GitHub'da ölçülen benimseme - ardından Aurabase'in Rust çekirdeği 'nin neden Axum'u seçtiğini destekleyici kodla açıklıyor.
Şekillendirilebilir Ara Yazılım Kulesi ile Entegre Sistem Karşılaştırması
Axum herhangi bir özel ara katman yazılımı sistemi oluşturmaz. Tamamen tower::Service'ye dayanır: zaman aşımları, izleme, sıkıştırma, yetkilendirme - kendi README'sine göre her şey Tower ekosistemi aracılığıyla "ücretsiz" gelir. Hyper veya Tonic uygulaması için yazılan ara yazılımlar, Axum uygulamasında olduğu gibi uyarlama gerektirmeden yeniden kullanılabilir.
Actix-web tam tersi bir yol izliyor: kullanıcı kılavuzunda belgelenen kendi ara yazılım sistemini (Logger, Session, CORS, vb.) kendi ilişkili HTTP istemcisiyle (awc) yerleştirir. Daha entegre bir platform; birleştirilmesi gereken daha az parça var ama aynı zamanda genel Rust eşzamansız ekosisteminin geri kalanıyla daha az doğrudan yeniden kullanılıyor.
Yönlendirme aynı açık kompozisyon mantığını takip eder. Axum, rotaları bildirmek için "makro içermeyen bir API" talep ediyor - Router::new().route(...) sıradan bir Rust değeri olmaya devam ediyor - burada Actix-web, doğrudan işleyicinin üzerine yerleştirilen HTTP yöntemiyle (#[get(...)]) özel makrolara güveniyor. İki ifade stili, yetenek farkı yok.
Axum'un şekillendirilebilirliğinin bir maliyeti vardır: Actix-web'in bunları dahili olarak sağladığı CORS, sıkıştırma veya sorgu boyutu sınırlamasını elde etmek için tower-http eklemeniz gerekir. Kullanıma hazır entegrasyon ve açık kompozisyon; gerçek bir denge, tek taraflı bir kusur değil.
Sıfırın güvensiz olduğu bildirildi, iki farklı MSRV
Axum, kaynak kodunda #![forbid(unsafe_code)] iddiasında bulunuyor: Çerçevenin %100'ü hiçbir boşluk olmadan güvenli Rust'ta yazılmıştır. Actix-web, README'sinde eşdeğer bir beyanda bulunmaz; bu, çerçevenin tehlikeli olduğu anlamına gelmez, yalnızca proje tarafından böyle bir garantinin kamuya açıklanmadığı anlamına gelir.
İki çerçeve Rust'un farklı bir minimum sürümünü belirler: Axum, Rust 1.80 ile uyumludur, Actix-web, Rust 1.88 gerektirir. Actix-web için daha dar bir pencere; alet zinciriniz eski bir sürümde takılıp kalmışsa bu önemli olabilir.
Her biri yerel olarak ne gönderiyor?
Actix-web, doğrudan kasasında büyük bir HTTP yüzeyini listeler: HTTP/1.x ve HTTP/2, WebSockets, şeffaf sıkıştırma (br, gzip, deflate, zstd), OpenSSL veya Rustls aracılığıyla TLS. Her şey, aralarından seçim yapabileceğiniz hiçbir ek bağımlılık olmadan bir araya gelir.
Axum kasıtlı olarak minimum düzeyde kalır: yönlendirme, çıkarıcılar, hata işleme - geri kalanı (sıkıştırma, CORS, istek sınırlaması, izleme) aynı ekosistemden bir yardımcı sandık olan tower-http'den gelir. Örneğin Aurabase, tower-http'nin yalnızca cors, trace, compression-gzip, request-id, timeout ve limit özelliklerini etkinleştirir; paketin tamamını değil, bilinçli bir seçimdir.
Neleri kontrol edebiliriz ve neleri yeniden yayınlamayız
Actix-web hızını kesin bir harici kaynaktan alıntı yaparak iddia ediyor: "TechEmpower Çerçeve Karşılaştırması'ye göre mevcut en hızlı web çerçevelerinden biri" (yuvarlak r21, kompozit), kendi README'sinde techempower.com'a doğrudan bağlantı ile. Bu, kendinizin doğrulayabileceği teklif türüdür.
Axum'un benzer bir iddiası yoktur. README'si daha mütevazı bir ifadeyle sınırlıdır - "axum, hiper üzerinde nispeten ince bir katmandır ve çok az yük ekler" - resmi bir proje rakamı değil, üçüncü taraf topluluk kıyaslamalarına iki bağlantı içerir.
Aurabase şu anda kendi üretim yükünde Axum ile Actix-web'in sayısal karşılaştırmasını yayınlamıyor. Kendimiz ölçmediğimiz bir sayı hiçbir zaman bir ürün argümanı olarak burada yeniden yayınlanmayacaktır - çıplak bir sayı yerine tam olarak doğrulanabilir bir yöntem yayınlamak için oluşturulmuş tekrarlanabilir kıyaslama metodolojimizebakın.
Bu yazının yazıldığı an itibariyle Crates.io ve GitHub ne diyor?
Crates.ioüzerinde Axum, son 90 gün içinde 109.000.226 dahil olmak üzere toplam 436.464.896 indirmesine sahiptir. Actix-web, aynı güncel pencerede (crates.io, 23 Ağustos 2026'da erişildi) 9,730,975 dahil olmak üzere toplam 78.074.020 indirmeyi biriktiriyor. Bu noktada aradaki fark çok açık: Axum bugün Actix-web'den yaklaşık 11 kat daha fazla yeni indirme alıyor.
Paradoks: Actix-web, Axum'un Temmuz 2021'e kıyasla Ekim 2017'den bu yana Crates.io'da yayınlanan ikisinden daha eskisidir. GitHub'da popülerlik farkı daha dar — tokio-rs/axum için 26.931 yıldız karşısında 24.793 actix/actix-web için (GitHub, erişim tarihi 23 Ağustos 2026) — ve Actix-web daha fazla çatal tutuyor (1.462'ye kıyasla 1.880), bu da tarihsel katkıda bulunan tabanının hala aktif olduğunun bir işareti.
Actix-web terk edilmekten çok uzak: 4.15.0 sürümü, bu makalenin yazılmasından üç gün önce, 21 Ağustos 2026'da yayınlandı. GitHub sorun kuyruğunda Axum, Actix-web için 192'ye kıyasla 75 açık bilet gösteriyor - dikkatle okunması gereken bir bakım sinyali: neredeyse dört yıl daha uzun bir geçmiş, daha uzun bir kuyruğu makineleştirir, bu daha az dikkatli bir projenin kanıtı değildir.
Axum'un README'si, main şubesinin önemli değişiklikler içeren 0.9 sürümünü hazırladığı konusunda uyarıyor; Crates.io'da yayınlanan kararlı şube 0.8.xolarak kalıyor. Bugün başlıyorsanız, deponun varsayılan dalını takip etmek yerine tam sürümü sabitleyin.
Neden Axum, kodla doğrulandı?
Aurabase kökü Kargo çalışma alanında on bir hizmet bulunur. On tanesi, kimlik doğrulama ve depolama da dahil olmak üzere API ağ geçidinden (aura-gateway)yerel AI motoruna (aura-ai) kadar doğrudan Axum'a güvenir. On birincisi, aura-migrator, HTTP sunucusu olmayan bir geçiş CLI aracıdır: seçebileceği hiçbir şey yoktur. Depoda Cargo.toml yok - veya Cargo.lock kökündeki herhangi bir giriş - geçişli bağımlılıkta bile actix-webbildirmiyor; ve hiçbir .rs dosyası use actix_web::talimatı içermiyor.
Bu seçim kozmetik değildir: Aurabase ağ geçidi (aura-gateway), ara katman yazılımını tower::ServiceBuilder ve Layer Tower — TraceLayer, TimeoutLayer, RequestBodyLimitLayer — istek tanımlayıcı, kimlik doğrulama ve güvenlik başlıkları için axum::middleware::from_fn aracılığıyla şirket içi katmanlarla desteklenerek yığınlar. Bu tam olarak Axum'un README'sinin vurguladığı kompozisyon modelidir: Tower ara yazılımı, yönlendiricinin geri kalanından bağımsız olarak istiflenir, test edilir ve yeniden kullanılır.
Burada doğrulanan şey, tercih edilen mimaridir; gerçek bağımlılık, ara yazılımların gerçek bileşimi. Ölçülmüş bir performans artışı iddia edilmemektedir: yeniden yayınlamadığımız konularla ilgili önceki bölüme bakın.
Axum ve Actix-web, yan yana
| Ara katman yazılımı | Kompozisyon kulesi::Hizmet, tescilli hiçbir şey yok | Entegre sistem (Logger, Session, CORS) |
|---|---|---|
| Bellek güvenliği | yasak(güvenli olmayan_kod) bildirildi | Eşdeğer beyan yok |
| MSRV | Pas 1.80 | Pas 1.88 |
| Lisans | MİT | Apache-2.0 VEYA MIT |
| Yerel HTTP | Yönlendirme + çıkarıcılar; geri kalanı tower-http aracılığıyla | HTTP/1.x, HTTP/2, sıkıştırma, entegre TLS |
| Crates.io indirmeleri (toplam) | 436 464 896 | 78 074 020 |
| Crates.io'yu indirme (90 gün) | 109 000 226 | 9 730 975 |
| GitHub Yıldızları | 26 931 | 24 793 |
| beri Crates.io'da | Temmuz 2021 | Ekim 2017 |
| Aurabase tarafından kullanılıyor | Evet — 11 Rust hizmetinden 10'u | Hayır - bağımlılık yok, doğrudan veya geçişli |
Kaynaklar: Crates.io API (/api/v1/crates/axum, /api/v1/crates/actix-web) ve GitHub API, 23 Ağustos 2026'da erişildi. Geri kalanı için resmi README'ler tokio-rs/axum ve actix/actix-web.
Kim neyi seçmeli
Modüler, çok hizmetli bir Rust arka ucu başlatırsınız. Axum doğal bir uyumdur; Tower bileşimi, Aurabase'in on HTTP hizmeti arasında yaptığı gibi, hizmetler arasında ara katman yazılımının paylaşılmasını kolaylaştırır.
Mevcut ve çalışan bir Actix web kod tabanınız var. Geçiş yapmak için aceleniz yok. Actix-web aktif olarak korunur ve ek bağımlılıklar olmadan HTTP/2, WebSockets ve sıkıştırmayı yerel olarak kapsar.
tower-http'i kendiniz birleştirmeden, tek bir kasada mümkün olduğunca fazla HTTP işlevselliğinin sunulmasını istiyorsunuz. Actix-web bu ihtiyaca doğrudan cevap veriyor.
Tower ara yazılımını zaten diğer Hyper veya Tonic (gRPC) hizmetleriyle paylaşıyorsunuz. Axum bu katmanları oldukları gibi yeniden kullanır; Aurabase'de ağırlık kazanan argüman da budur.