PRODEgemen Avrupa BaaS platformuKontrol Panelini Aç →

Mühendislik · 9 dk. okuma

Axum ve Actix-web: üretimde hangi Rust çerçevesi?

Affane Daylami · Fondateur · 9 Ağustos 2026

Bloga geri dön

Axum ve Actix-web, üretimde Rust arka ucu oluşturmak için en çok kullanılan iki eşzamansız HTTP çerçevesidir. Aurabase erken karar verdi: On bir arka uç hizmetinden on tanesi Axum'da çalışıyor, hiçbiri Actix-web'de çalışmıyor.

Bu İngilizce metin, Fransızca orijinalinden otomatik olarak oluşturulmuştur ve henüz incelenmemiştir.
Bu sayfa otomatik olarak çevrildi. İngilizce versiyonu yetkilidir.

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.

#
Bağlam

İ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.

#
Mimarlık

Ş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.

Nüans

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.

#
Bellek güvenliği

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.

#
Özellikler

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.

#
Performans

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.

Burada yapmadığımız şey

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.

#
Evlat edinme

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.

Astuce

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.

#
Aurabase seçimi

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.

Cargo.toml (çalışma alanı kökü)toml
axum       = { version = "0.8", features = ["ws", "multipart", "macros"] }
tower      = { version = "0.5", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip", "request-id", "timeout", "limit"] }
hyper      = { version = "1", features = ["full"] }

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.

Doğrulanmış ve ürün hedefi

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.

#
Genel Bakış

Axum ve Actix-web, yan yana

Ara katman yazılımıKompozisyon kulesi::Hizmet, tescilli hiçbir şey yokEntegre sistem (Logger, Session, CORS)
Bellek güvenliğiyasak(güvenli olmayan_kod) bildirildiEşdeğer beyan yok
MSRVPas 1.80Pas 1.88
LisansMİTApache-2.0 VEYA MIT
Yerel HTTPYönlendirme + çıkarıcılar; geri kalanı tower-http aracılığıylaHTTP/1.x, HTTP/2, sıkıştırma, entegre TLS
Crates.io indirmeleri (toplam)436 464 89678 074 020
Crates.io'yu indirme (90 gün)109 000 2269 730 975
GitHub Yıldızları26 93124 793
beri Crates.io'daTemmuz 2021Ekim 2017
Aurabase tarafından kullanılıyorEvet — 11 Rust hizmetinden 10'uHayı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.

#
Karar

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.

#
Sıkça Sorulan Sorular

SSS

Axum 2026'da üretime hazır mı?+
Evet: çerçeve tokio-rs organizasyonu tarafından korunmaktadır, 0.8.9 sürümündedir (Nisan 2026) ve Crates.io'da 436 milyondan fazla indirilmiştir. Aurabase, bunu on bir Rust hizmetinin onunda üretimde kullanıyor ve doğrudan Cargo.toml deposu kökünde doğrulanıyor.
Bir Actix-web projesini her şeyi yeniden yazmadan Axum'a taşıyabilir miyiz?+
Her iki çerçeve de Tokio'da çalışır, dolayısıyla eşzamansız iş mantığı doğrudan taşınır. Yönlendirme ve ara yazılım katmanındaki değişiklikler: Actix-web çıkarıcılarının Axum çıkarıcılarla yeniden yazılması ve entegre ara yazılımın yerini eşdeğer kule-http katmanlarının alması gerekir. Bildiğimiz kadarıyla iki çerçeve arasında otomatik geçiş aracı mevcut değildir.
Hangisi daha hızlı: Axum mu yoksa Actix-web mi?+
Her iki ekip de aynı iş yükünde iki çerçeve arasında doğrudan niceliksel bir karşılaştırma yayınlamamaktadır. Actix-web, TechEmpower Çerçeve Karşılaştırmasını (r21 yuvarlak, kompozit) hızın kanıtı olarak gösteriyor; Axum, kendi README'sine göre karşılaştırılabilir performansa sahip, kendisini Hyper'ın üzerinde ince bir katman olarak tanımlıyor. Uygulamada, bir üretim arka ucunun darboğazı neredeyse her zaman HTTP çerçevesinin kendisinden değil, veritabanından veya ağdan kaynaklanır.
Tower ekosistemine göre mi seçim yapmalısınız?+
Kuruluşunuzda zaten Tonic veya Hyper raw uygulamalarında gRPC hizmetleri varsa evet: Axum, aynı Tower katmanlarını uyarlama gerekmeden yeniden kullanmanıza olanak tanır. Aurabase seçiminde ağırlıklı olan da tam olarak budur; ağ geçidi ara yazılımları (izleme, istek sınırlama, CORS), bir çerçeveye özgü kod değil, standart Katman Kulesi'dir.

DAĞITILMAYA HAZIR MISINIZ?

Beş dakika içinde arka ucunuz.

Kredi kartı gerekmez · 500 MB ücretsiz · 50.000 MAU