PRODSuwerenna europejska platforma BaaSOtwórz Panel →

Inżynieria · 9 min odczytu

Axum vs Actix-web: który framework Rust jest w produkcji?

Affane Daylami · Fondateur · 9 sierpnia 2026

Powrót do bloga

Axum i Actix-web to dwa asynchroniczne frameworki HTTP najczęściej używane do tworzenia backendu Rusta w środowisku produkcyjnym. Aurabase podjął decyzję wcześnie: dziesięć z jedenastu usług backendowych działa na Axum, żadna na Actix-web.

Ten tekst w języku angielskim został wygenerowany automatycznie na podstawie francuskiego oryginału i nie był jeszcze recenzowany.
Ta strona została przetłumaczona automatycznie. Wersja angielska jest miarodajna.

Wybór ten nie jest absolutną oceną obu ram. To kompromis architektoniczny, udokumentowany tutaj na podstawie tego, co zweryfikowaliśmy w kodzie i rejestrach publicznych, a nie na niezmierzonych wynikach wydajności.

Najważniejsze

Axum nie tworzy niczego zastrzeżonego: opiera się na tower::Service w zakresie oprogramowania pośredniczącego, na Hyper w zakresie transportu i zabrania jakiegokolwiek kodu unsafe. Actix-web zawiera własny system oprogramowania pośredniego (Logger, Session, CORS), natywny protokół HTTP/2 i sam cytuje benchmark TechEmpower Framework jako dowód szybkości. Na crates.io Axum ma dziś ponad 436 milionów pobrań w porównaniu do około 78 milionów w przypadku Actix-web – pomimo prawie czterech lat różnicy wieku na jego niekorzyść. Aurabase wybrał Axum do kompozycji Tower, zweryfikowanej w jedenastu prawdziwych repozytoriach Cargo.toml, a nie ze względu na niezmierzoną wydajność.

#
Kontekst

Dwa frameworki, ta sama baza Tokio

Zarówno Axum, jak i Actix-web działają w Tokio, referencyjnym asynchronicznym środowisku wykonawczym w Rust. Plik README Actix-web stwierdza to bez ogródek — „Pełna kompatybilność z Tokio” — a jego oficjalny przykładowy kod nie wykorzystuje żadnego aktora z historycznego frameworka actix: wystarczy klasyczna procedura obsługi async fn z adnotacją #[get(...)]. Zamieszanie „Actix-web koniecznie wymaga aktorów” nie odpowiada już obecnemu API.

Axum narodził się na bezpośredniej orbicie Tokio: repozytorium należy do organizacji GitHub tokio-rs, a jego oficjalna dokumentacja jest jednoznaczna — „axum jest zaprojektowane do współpracy z Tokio i Hyper. Niezależność środowiska wykonawczego i warstwy transportowej nie jest celem, przynajmniej na razie. »

Nie jest to zatem wybór między dwoma konkurującymi środowiskami wykonawczymi, ale między dwoma sposobami budowania interfejsu API HTTP na tym samym silniku asynchronicznym. To porównanie obejmuje cztery weryfikowalne obszary – model oprogramowania pośredniego, deklarowane bezpieczeństwo pamięci, natywną powierzchnię HTTP, adopcję mierzoną na crates.io i GitHub – następnie wyjaśnia, wraz z kodem pomocniczym, dlaczego rdzeń Rust Aurabase wybrał Axum.

#
Architektura

Kompozytowa wieża oprogramowania pośredniego a system zintegrowany

Axum nie buduje żadnych własnych systemów oprogramowania pośredniczącego. Opiera się całkowicie na tower::Service: przekroczeniach limitów czasu, śledzeniu, kompresji, autoryzacji — wszystko jest dostępne „za darmo” za pośrednictwem ekosystemu Tower, zgodnie z własnym plikiem README. Oprogramowanie pośrednie napisane dla aplikacji Hyper lub Tonic może być ponownie użyte tak samo, jak w aplikacji Axum, bez konieczności adaptacji.

Actix-web podąża odwrotną ścieżką: osadza swój własny system oprogramowania pośredniego (Logger, Session, CORS itp.), udokumentowany w podręczniku użytkownika, z własnym powiązanym klientem HTTP (awc). Jest to bardziej zintegrowana platforma — mniej części do złożenia, ale także mniej bezpośredniego ponownego użycia z resztą ogólnego ekosystemu asynchronicznego Rust.

Routing opiera się na tej samej, jawnej logice kompozycji. Axum twierdzi, że ma „bezmakrowe API” do deklarowania tras — Router::new().route(...) pozostaje zwykłą wartością Rusta — gdzie Actix-web opiera się na dedykowanych makrach metodą HTTP (#[get(...)]) umieszczonych bezpośrednio nad procedurą obsługi. Dwa style wypowiedzi, a nie różnica w umiejętnościach.

Niuans

Komponowanie Axuma ma swoją cenę: musisz dodać tower-http, aby uzyskać CORS, ograniczenie rozmiaru kompresji lub zapytania, gdy Actix-web dostarcza je wewnętrznie. Gotowa do użycia integracja kontra jawna kompozycja — prawdziwy kompromis, a nie wada po jednej stronie.

#
Bezpieczeństwo pamięci

Zero uznane za niebezpieczne, dwa różne MSRV

Axum twierdzi, że w swoim kodzie źródłowym znajduje się #![forbid(unsafe_code)]: 100% frameworku jest napisane w bezpiecznym Rust, bez luk. Actix-web nie zamieszcza równoważnego stwierdzenia w swoim pliku README — nie oznacza to, że framework jest niebezpieczny, a jedynie, że projekt nie prezentuje publicznie takiej gwarancji.

Obydwa frameworki ustalają inną minimalną wersję Rusta: Axum jest kompatybilny z Rustem 1.80, Actix-web wymaga Rusta 1.88. Węższe okno dla Actix-web, co może mieć znaczenie, jeśli Twój zestaw narzędzi utknął na starszej wersji.

#
Cechy

Co każdy z nich wysyła natywnie

Actix-web wyświetla bezpośrednio w swojej skrzynce dużą przestrzeń HTTP: HTTP/1.x i HTTP/2, WebSockets, kompresja przezroczysta (br, gzip, deflate, zstd), TLS przez OpenSSL lub Rustls. Wszystko jest ze sobą spójne, bez dodatkowych zależności do wyboru.

Axum celowo pozostaje minimalne: routing, ekstraktory, obsługa błędów — reszta (kompresja, CORS, ograniczanie żądań, śledzenie) pochodzi z tower-http, skrzynki towarzyszącej z tego samego ekosystemu. Na przykład Aurabase włącza tylko funkcje cors, trace, compression-gzip, request-id, timeout i limit tower-http — celowy wybór, a nie cały pakiet.

#
Wydajność

Co możemy sprawdzić, a czego nie publikujemy ponownie

Actix-web twierdzi, że jest szybki, cytując dokładne źródło zewnętrzne: „Jedna z najszybszych dostępnych platform internetowych według TechEmpower Framework Benchmark” (okrągłe r21, kompozytowe), z bezpośrednim linkiem do techempower.com we własnym pliku README. Jest to rodzaj wyceny, którą możesz sam zweryfikować.

Axum nie przedstawia żadnego porównywalnego twierdzenia. Jego plik README ogranicza się do skromniejszego stwierdzenia — „axum to stosunkowo cienka warstwa na wierzchu Hyper i dodaje bardzo niewiele narzutu” — z dwoma linkami do testów porównawczych społeczności zewnętrznych, a nie oficjalnymi danymi projektu.

Czego tu nie robimy

Aurabase nie publikuje obecnie żadnych ilościowych porównań Axum z Actix-web na własnym obciążeniu produkcyjnym. Liczba, której sami nie zmierzyliśmy, nigdy nie zostanie tutaj ponownie opublikowana jako argument dotyczący produktu — zobacz naszą powtarzalną metodologię testów porównawczych, stworzoną właśnie w celu publikowania weryfikowalnej metody, a nie samej liczby.

#
Przyjęcie

Co mówią crates.io i GitHub w chwili pisania tego tekstu

Na crates.io, Axum pobrał łącznie 436 464 896, w tym 109 000 226 w ciągu ostatnich 90 dni. Actix-web gromadzi łącznie 78 074 020 pobrań, w tym 9 730 975 w tym samym ostatnim oknie (crates.io, dostęp 23 sierpnia 2026 r.). W tym momencie różnica jest wyraźna: obecnie Axum pobiera około 11 razy więcej aktualnych pobrań niż Actix-web.

Paradoks: Actix-web jest starszym z nich i jest publikowany na crates.io od października 2017 r. w porównaniu z lipcem 2021 r. dla Axum. Na GitHubie różnica w popularności jest mniejsza — 26 931 gwiazdek dla tokio-rs/axum w porównaniu z 24 793 dla actix/actix-web (GitHub, dostęp: 23 sierpnia 2026 r.) — a Actix-web utrzymuje więcej forków (1880 w porównaniu do 1462), co oznacza, że historyczna baza autorów jest nadal aktywna.

Actix-web jest daleki od porzucenia: jego wersja 4.15.0 została opublikowana 21 sierpnia 2026 r., trzy dni przed napisaniem tego artykułu. W kolejce zgłoszeń GitHub Axum wyświetla 75 otwartych zgłoszeń w porównaniu do 192 w przypadku Actix-web — sygnał konserwacji, który należy czytać z ostrożnością: historia dłuższa o prawie cztery lata powoduje wydłużenie kolejki, nie jest to dowód na mniej staranny projekt.

Astus

Sam plik README firmy Axum ostrzega, że ​​jego gałąź main przygotowuje wersję 0.9 z przełomowymi zmianami — stabilna gałąź opublikowana na crates.io pozostaje 0.8.x. Jeśli zaczynasz dzisiaj, przypnij dokładną wersję, zamiast podążać za domyślną gałęzią repozytorium.

#
Wybór Aurabase

Dlaczego Axum, zweryfikowane w kodzie

Główny obszar roboczy Aurabase Cargo zawiera jedenaście usług. Dziesięć z nich opiera się bezpośrednio na Axum — od bramy API (aura-gateway) po natywny silnik AI (aura-ai), w tym uwierzytelnianie i przechowywanie. Jedenasty, aura-migrator, to narzędzie do migracji CLI bez serwera HTTP: po prostu nie ma z czego wybierać. Brak Cargo.toml w repozytorium — ani żaden wpis w katalogu głównym Cargo.lock — deklaruje actix-web, nawet w zależności przechodniej; i żaden plik .rs nie zawiera instrukcji use actix_web::.

Cargo.toml (korzeń obszaru roboczego)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"] }

Ten wybór nie jest kosmetyczny: brama Aurabase (aura-gateway) łączy swoje oprogramowanie pośrednie z tower::ServiceBuilder i Layer Tower — TraceLayer, TimeoutLayer, RequestBodyLimitLayer — uzupełnione wewnętrznymi warstwami poprzez axum::middleware::from_fn dla identyfikatora żądania, uwierzytelniania i nagłówków bezpieczeństwa. To jest dokładnie ten model kompozycji, który podkreśla plik README firmy Axum: oprogramowanie pośrednie Tower jest układane, testowane i ponownie wykorzystywane niezależnie od reszty routera.

Zweryfikowany a cel produktu

Tutaj sprawdzana jest wybrana architektura — rzeczywista zależność, rzeczywisty skład oprogramowania pośredniczącego. Nie deklaruje się żadnego ilościowego wzrostu wydajności: zobacz poprzednią sekcję dotyczącą tego, czego nie publikujemy ponownie.

#
Przegląd

Axum i Actix-web, obok siebie

Oprogramowanie pośrednieSkład wieży::Serwis, nic zastrzeżonegoZintegrowany system (Logger, Sesja, CORS)
Bezpieczeństwo pamięcizadeklarowano zakaz (unsafe_code).Brak równoważnej deklaracji
MSRVRdza 1,80Rdza 1,88
LicencjaMITApache-2.0 LUB MIT
Natywny protokół HTTPTrasowanie + ekstraktory; reszta przez tower-httpHTTP/1.x, HTTP/2, kompresja, zintegrowany TLS
pobrania crates.io (łącznie)436 464 89678 074 020
Pobieranie crates.io (90 dni)109 000 2269 730 975
Gwiazdy GitHuba26 93124 793
Od tego czasu na crates.iolipiec 2021Październik 2017
Używany przez AurabaseTak — 10 z 11 usług RustNie — żadnych zależności, bezpośrednich ani przechodnich

Źródła: API crates.io (/api/v1/crates/axum, /api/v1/crates/actix-web) i API GitHub, dostęp 23 sierpnia 2026 r. W pozostałych oficjalnych plikach README tokio-rs/axum i actix/actix-web.

#
Decyzja

Kto powinien wybrać co

Uruchamiasz modułowy, wielousługowy backend Rusta. Axum idealnie pasuje — jego kompozycja typu Tower ułatwia współdzielenie oprogramowania pośredniego między usługami, tak jak robi to Aurabase między dziesięcioma usługami HTTP.

Masz istniejącą i działającą bazę kodu Actix-web. Nie ma pośpiechu z migracją. Actix-web pozostaje aktywnie utrzymywany i obsługuje protokoły HTTP/2, WebSockets i kompresję natywnie, bez dodatkowych zależności.

Chcesz, aby jak najwięcej funkcji HTTP było dostarczonych w jednej skrzynce, bez konieczności samodzielnego montażu tower-http. Actix-web bezpośrednio odpowiada na tę potrzebę.

Udostępniasz już oprogramowanie pośrednie Tower innym usługom Hyper lub Tonic (gRPC). Axum ponownie wykorzystuje te warstwy takimi, jakie są – to argument, który przeważył w Aurabase.

#
Często zadawane pytania

Często zadawane pytania

Czy Axum jest gotowy do produkcji w 2026 roku?+
Tak: framework jest utrzymywany przez organizację tokiors, jest w wersji 0.8.9 (kwiecień 2026) i ma ponad 436 milionów pobrań na crates.io. Aurabase wykorzystuje go w produkcji w dziesięciu z jedenastu usług Rust — weryfikowanych bezpośrednio w katalogu głównym repozytorium Cargo.toml.
Czy możemy przeprowadzić migrację projektu Actix-web do Axum bez przepisywania wszystkiego?+
Obydwa frameworki działają na Tokio, więc asynchroniczna logika biznesowa jest przenoszona bezpośrednio. Jakie zmiany dotyczą warstwy routingu i oprogramowania pośredniego: ekstraktory Actix-web muszą zostać przepisane za pomocą ekstraktorów Axum, a zintegrowane oprogramowanie pośrednie zastąpione równoważnymi warstwami Tower-http. Według naszej wiedzy nie istnieje żadne narzędzie do automatycznej migracji pomiędzy tymi dwoma platformami.
Co jest szybsze, Axum czy Actix-web?+
Żaden zespół nie publikuje bezpośredniego porównania ilościowego między dwoma frameworkami przy identycznym obciążeniu pracą. Actix-web cytuje benchmark TechEmpower Framework (okrągły r21, kompozyt) jako dowód szybkości; Axum opisuje siebie jako cienką warstwę na Hyperze, której wydajność jest uznawana za porównywalną zgodnie z własnym README. W praktyce wąskie gardło w środowisku produkcyjnym prawie zawsze pochodzi z bazy danych lub sieci, a nie z samego frameworka HTTP.
Czy wybrać w oparciu o ekosystem Tower?+
Jeśli Twoja organizacja ma już usługi gRPC w aplikacjach Tonic lub Hyper raw, tak: Axum umożliwia ponowne wykorzystanie tych samych warstw Tower bez konieczności adaptacji. To właśnie zadecydowało o wyborze Aurabase — oprogramowanie pośredniczące bramy (śledzenie, ograniczanie żądań, CORS) to standardowa warstwa Layer Tower, a nie kod specyficzny dla frameworka.

GOTOWY DO WDROŻENIA?

Twój backend w pięć minut.

Karta kredytowa nie jest wymagana · 500 MB za darmo · 50 000 MAU