PRODСуверенная европейская платформа BaaSОткрыть панель управления →

Инженерное дело · 9 минута чтения

Axum против Actix-web: какой фреймворк Rust находится в производстве?

Affane Daylami · Fondateur · 9 августа 2026 г.

Вернуться в блог

Axum и Actix-web — две асинхронные HTTP-платформы, наиболее часто используемые для создания серверной части Rust в производственной среде. Aurabase приняла решение заранее: десять из одиннадцати серверных служб работают на Axum и ни одна на Actix-web.

Этот текст на английском языке был создан автоматически на основе французского оригинала и еще не проверялся.
Эта страница была переведена автоматически. Английская версия является авторитетной.

Этот выбор не является абсолютным суждением по поводу двух структур. Это архитектурный компромисс, задокументированный здесь на основании того, что мы проверили в коде и общедоступных записях, а не на неизмеренных показателях производительности.

Самое необходимое

Axum не создает ничего проприетарного: он использует tower::Service в качестве промежуточного программного обеспечения, Hyper для транспорта и запрещает любой код unsafe. Actix-web включает собственную систему промежуточного программного обеспечения (Logger, Session, CORS), собственный HTTP/2 и сам ссылается на тест TechEmpower Framework Benchmark как доказательство скорости. На crates.io у Axum сегодня более 436 миллионов загрузок по сравнению с примерно 78 миллионами у Actix-web – несмотря на почти четырехлетнюю разницу в возрасте, что является его недостатком. Aurabase выбрала Axum для композиции Tower, проверенной в одиннадцати реальных репозиториях Cargo.toml, а не из-за неизмеренной производительности.

#
Контекст

Два фреймворка, одна и та же база Токио

Axum и Actix-web работают на Tokio, эталонной асинхронной среде выполнения в Rust. В README Actix-web это прямо указано — «Полная совместимость с Tokio» — и его официальный пример кода не использует никаких актеров из исторической среды actix: достаточно классического обработчика async fn с аннотацией #[get(...)]. Путаница «Actix-web обязательно требует актеров» больше не соответствует текущему API.

Axum родился на непосредственной орбите Токио: репозиторий принадлежит GitHub-организации tokio-rs, а его официальная документация однозначна — "axum предназначен для работы с tokio и Hyper. Независимость времени выполнения и транспортного уровня не является целью, по крайней мере, на данный момент".

Таким образом, это не выбор между двумя конкурирующими средами выполнения, а между двумя способами создания HTTP API поверх одного и того же асинхронного механизма. Это сравнение охватывает четыре поддающиеся проверке области — модель промежуточного программного обеспечения, заявленную безопасность памяти, собственную поверхность HTTP, внедрение, измеренное на crates.io и GitHub, — а затем объясняет, с помощью вспомогательного кода, почему ядро ​​Rust Aurabase выбрало Axum.

#
Архитектура

Компонуемая башня промежуточного программного обеспечения в сравнении с интегрированной системой

Axum не создает никаких проприетарных систем промежуточного программного обеспечения. Он полностью полагается на tower::Service: таймауты, трассировка, сжатие, авторизация — все предоставляется «бесплатно» через экосистему Tower, согласно его собственному README. Промежуточное программное обеспечение, написанное для приложения Hyper или Tonic, можно повторно использовать в приложении Axum без адаптации.

Actix-web идет противоположным путем: он встраивает свою собственную систему промежуточного программного обеспечения (Logger, Session, CORS и т. д.), описанную в руководстве пользователя, со своим собственным связанным HTTP-клиентом (awc). Это более интегрированная платформа — меньше деталей для сборки, но и меньше прямого повторного использования с остальной частью общей асинхронной экосистемы Rust.

Маршрутизация следует той же явной логике композиции. Axum заявляет о «API без макросов» для объявления маршрутов — Router::new().route(...) остаётся обычным значением Rust — где Actix-web полагается на выделенные макросы методом HTTP (#[get(...)]), размещенные непосредственно над обработчиком. Два стиля высказываний, а не разница в способностях.

Нюанс

За возможность компоновки Axum приходится платить: вы должны добавить tower-http, чтобы получить CORS, сжатие или ограничение размера запроса, где Actix-web доставляет их внутри себя. Готовая интеграция против явной композиции — настоящий компромисс, а не недостаток с одной стороны.

#
Безопасность памяти

Ноль объявлен небезопасным, два разных MSRV

В исходном коде Axum заявлено #![forbid(unsafe_code)]: 100% фреймворка написано на безопасном Rust, без каких-либо лазеек. Actix-web не делает аналогичного заявления в своем README — это не означает, что фреймворк опасен, просто проект не предоставляет такой гарантии публично.

В двух фреймворках установлена ​​разная минимальная версия Rust: Axum совместим с Rust 1.80, Actix-web требует Rust 1.88. Более узкое окно для Actix-web, что может иметь значение, если ваша цепочка инструментов застряла на более старой версии.

#
Функции

Что каждый из них предлагает изначально

Actix-web перечисляет большую поверхность HTTP непосредственно в своем ящике: HTTP/1.x и HTTP/2, WebSockets, прозрачное сжатие (br, gzip, deflate, zstd), TLS через OpenSSL или Rustls. Все собрано вместе, без каких-либо дополнительных зависимостей на выбор.

Axum намеренно остаётся минимальным: маршрутизация, экстракторы, обработка ошибок — всё остальное (сжатие, CORS, ограничение запросов, трассировка) поступает из tower-http, сопутствующего крейта из той же экосистемы. Aurabase, например, включает только функции cors, trace, compression-gzip, request-id, timeout и limit tower-http — намеренный выбор, а не весь пакет.

#
Производительность

Что мы можем проверить, а что не публикуем повторно

Actix-web заявляет о своей скорости, ссылаясь на точный внешний источник: «Один из самых быстрых веб-фреймворков, доступных согласно тесту TechEmpower Framework Benchmark» (раунд r21, составной), с прямой ссылкой на techempower.com в собственном README. Это тип цитаты, которую вы можете проверить самостоятельно.

Аксум не делает подобных заявлений. Его README ограничен более скромным заявлением — «axum — это относительно тонкий слой поверх Hyper и добавляет очень мало накладных расходов» — с двумя ссылками на тесты стороннего сообщества, а не на официальную цифру проекта.

Что мы здесь не делаем

Aurabase в настоящее время не публикует каких-либо количественных сравнений Axum и Actix-web на собственной производственной нагрузке. Число, которое мы не измеряли сами, никогда не будет опубликовано здесь в качестве аргумента продукта — см. нашу методологию воспроизводимых тестов , созданную именно для публикации проверяемого метода, а не голого числа.

#
Принятие

Что говорят crates.io и GitHub на момент написания этой статьи

На crates.ioу Axum всего 436 464 896 загрузок, включая 109 000 226 за последние 90 дней. Actix-web накапливает 78 074 020 загрузок в общей сложности, включая 9 730 975 в том же недавнем окне (crates.io, по состоянию на 23 августа 2026 г.). В этом отношении разрыв очевиден: сегодня Axum получает примерно в 11 раз больше последних загрузок, чем Actix-web.

Парадокс: Actix-web — более старый из двух, опубликованный на crates.io с октября 2017 года по сравнению с июлем 2021 года для Axum. На GitHub разрыв в популярности меньше — 26 931 звезд для tokio-rs/axum против 24 793 для actix/actix-web (GitHub, по состоянию на 23 августа 2026 г.) — и Actix-web поддерживает больше вилок (1880 по сравнению с 1462), что является признаком того, что историческая база участников все еще активна.

Actix-web по-прежнему далеко не заброшен: его версия 4.15.0 была опубликована 21 августа 2026 года, за три дня до написания этой статьи. В очереди задач GitHub Axum отображает 75 открытых заявок по сравнению со 192 у Actix-web — сигнал обслуживания, к которому следует относиться с осторожностью: история, длившаяся почти четыре года, механизирует более длинную очередь, это не является доказательством менее тщательного проекта.

Астуце

Сам README Axum предупреждает, что его ветка main готовит версию 0.9 с критическими изменениями — стабильная ветка, опубликованная на crates.io, остается 0.8.x. Если вы начинаете сегодня, закрепите точную версию, а не следуйте ветке репозитория по умолчанию.

#
Выбор Аурабазы

Почему Axum, проверено в коде

Корневое рабочее пространство Aurabase Cargo имеет одиннадцать сервисов. Десять напрямую полагаются на Axum — от API-шлюза (aura-gateway) до собственного механизма искусственного интеллекта (aura-ai), включая аутентификацию и хранение. Одиннадцатый, aura-migrator, — это CLI-инструмент миграции без HTTP-сервера: ему просто не из чего выбирать. Ни один Cargo.toml в репозитории — ни одна запись в корне Cargo.lock — не объявляет actix-webдаже в транзитивной зависимости; и ни один файл .rs не содержит инструкции use actix_web::.

Cargo.toml (корень рабочей области)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"] }

Этот выбор не является косметическим: шлюз Aurabase (aura-gateway) объединяет свое промежуточное программное обеспечение с tower::ServiceBuilder и Layer Tower — TraceLayer, TimeoutLayer, RequestBodyLimitLayer — дополненными внутренними уровнями через axum::middleware::from_fn для идентификатора запроса, аутентификации и заголовков безопасности. Это именно та модель композиции, которую подчеркивает README компании Axum: промежуточное программное обеспечение Tower устанавливается, тестируется и повторно используется независимо от остальной части маршрутизатора.

Проверено и цель продукта

Здесь проверяется выбранная архитектура — реальная зависимость, реальный состав промежуточного программного обеспечения. Никакого количественного прироста производительности не заявлено: информацию о том, что мы не публикуем, см. в предыдущем разделе.

#
Обзор

Axum и Actix-web, бок о бок

Промежуточное ПОКомпозиционная башня::Сервис, ничего фирменногоИнтегрированная система (Logger, Session, CORS)
Безопасность памятиобъявлен запрет (unsafe_code)Нет эквивалентной декларации
МСРВРжавчина 1.80Ржавчина 1.88
ЛицензияМассачусетский технологический институтApache-2.0 ИЛИ MIT
Родной HTTPМаршрутизация + экстракторы; остальное через Tower-httpHTTP/1.x, HTTP/2, сжатие, встроенный TLS
загрузок crates.io (всего)436 464 89678 074 020
Загрузки crates.io (90 дней)109 000 2269 730 975
Звезды GitHub26 93124 793
На crates.io с тех пориюль 2021 г.Октябрь 2017 г.
Используется AurabaseДа — 10 из 11 сервисов RustНет — никаких зависимостей, прямых или транзитивных

Источники: API crates.io (/api/v1/crates/axum, /api/v1/crates/actix-web) и GitHub API, по состоянию на 23 августа 2026 г. Официальные файлы README tokio-rs/axum и actix/actix-web для остальных.

#
Решение

Кому что следует выбрать

Вы запускаете модульный мультисервисный бэкэнд на Rust. Axum идеально подходит: его структура Tower упрощает совместное использование промежуточного программного обеспечения между службами, как это делает Aurabase между десятью своими HTTP-службами.

У вас есть существующая и работающая база кода Actix-web. Мигрировать не нужно. Actix-web продолжает активно поддерживаться и изначально поддерживает HTTP/2, WebSockets и сжатие без дополнительных зависимостей.

Вы хотите, чтобы как можно больше функций HTTP было реализовано в одном пакете, без самостоятельной сборки tower-http. Actix-web напрямую отвечает этой потребности.

Вы уже используете промежуточное программное обеспечение Tower с другими службами Hyper или Tonic (gRPC). Axum повторно использует эти слои такими, какие они есть – это аргумент, который повлиял на Aurabase.

#
Часто задаваемые вопросы

Часто задаваемые вопросы

Готов ли Аксум к производству в 2026 году?+
Да: фреймворк поддерживается организацией tokio-rs, имеет версию 0.8.9 (апрель 2026 г.) и имеет более 436 миллионов загрузок на crates.io. Aurabase использует его в десяти из одиннадцати сервисов Rust, что проверено непосредственно в корне репозитория Cargo.toml.
Можем ли мы перенести проект Actix-web в Axum, не переписывая все?+
Обе платформы работают на Tokio, поэтому асинхронная бизнес-логика выполняется напрямую. Что меняется, так это уровень маршрутизации и промежуточного программного обеспечения: экстракторы Actix-web должны быть переписаны экстракторами Axum, а интегрированное промежуточное программное обеспечение заменено эквивалентными уровнями Tower-http. Насколько нам известно, не существует инструмента автоматической миграции между двумя платформами.
Что быстрее, Axum или Actix-web?+
Ни одна из команд не публикует прямое количественное сравнение двух платформ при одинаковой рабочей нагрузке. Actix-web ссылается на тест TechEmpower Framework Benchmark (раунд r21, составной) как на доказательство скорости; Axum описывает себя как тонкий слой поверх Hyper, производительность которого согласно его собственному README считается сопоставимой. На практике узким местом производственного бэкэнда почти всегда является база данных или сеть, а не сама платформа HTTP.
Стоит ли выбирать на основе экосистемы Tower?+
Если в вашей организации уже есть службы gRPC в приложениях Tonic или Hyper raw, да: Axum позволяет повторно использовать одни и те же уровни Tower без адаптации. Именно это повлияло на выбор Aurabase — промежуточное программное обеспечение шлюза (трассировка, ограничение запросов, CORS) представляет собой стандартную Layer Tower, а не код, специфичный для платформы.

ГОТОВЫ К РАЗВЕРТЫВАНИЮ?

Ваш бэкэнд за пять минут.

Кредитная карта не требуется · 500 МБ бесплатно · 50 000 MAU