Repolode
tokio-rs

tokio-rs/axum

Эргономичная модульная библиотека для маршрутизации HTTP-запросов и их обработки в Rust на базе tower и hyper.

Звёзды
27,588
Форки
1,526
Открытые issues
109
Последний коммит
5 дней назад

Что это?

axum — библиотека на Rust для создания HTTP-серверов. Она связывает маршруты с асинхронными функциями-обработчиками без макросов, а обработчики объявляют, какие данные им нужны из запроса, с помощью экстракторов — например, для разбора JSON-тела. Так разбор и проверка данных остаются декларативными. Обработчики могут возвращать любой тип, реализующий трейт ответа, благодаря чему обработка ошибок и формирование ответов остаются предсказуемыми.

Вместо собственной системы middleware axum использует tower::Service. Таймауты, трассировку, сжатие и авторизацию из экосистем tower и tower-http можно подключать напрямую, а middleware — использовать совместно с приложениями на hyper или tonic. axum — тонкий слой поверх hyper, почти не добавляющий накладных расходов.

Проект опубликован на crates.io; текущая ветка релизов — 0.8.x, а в main ведётся работа над версией 0.9 с несовместимыми изменениями. В проекте запрещён небезопасный код, минимальная поддерживаемая версия Rust — 1.80.

Ключевые возможности

  • 01Маршрутизация путей к асинхронным функциям-обработчикам без макросов.
  • 02Декларативный разбор запросов с помощью экстракторов, в том числе JSON-тел.
  • 03Формирование ответов из обычных типов возврата с минимумом шаблонного кода.
  • 04Полная совместимость с экосистемой middleware для tower.
  • 05Тонкий слой поверх hyper с низкими накладными расходами.
  • 06Целиком написана на безопасном Rust; небезопасный код запрещён.

Сценарии использования

  • Создание JSON REST API на Rust с типизированными телами запросов и ответов.
  • Подключение общих middleware, например для трассировки, таймаутов или сжатия, к веб-сервису на Rust.
  • Совместное использование middleware веб-API и сервисами на hyper или tonic.

Быстрый старт

  1. 1

    Добавьте axum в проект на Rust (в README нет команды для установки).

  2. 2

    Скопируйте пример использования из README в src/main.rs.

  3. 3

    Посмотрите другие примеры кода в каталоге examples.

Что важно знать

  • В ветке main есть несовместимые изменения, предшествующие версии 0.9, поэтому для выпущенной версии используйте ветку 0.8.x.
  • Минимальная поддерживаемая версия Rust — 1.80.

В подборках

Темы

Частые вопросы

Что такое axum?
Эргономичная модульная библиотека для маршрутизации HTTP-запросов и их обработки в Rust на базе tower и hyper. axum — библиотека на Rust для создания HTTP-серверов. Она связывает маршруты с асинхронными функциями-обработчиками без макросов, а обработчики объявляют, какие данные им нужны из запроса, с помощью экстракторов — например, для разбора JSON-тела. Так разбор и проверка данных остаются декларативными. Обработчики могут возвращать любой тип, реализующий трейт ответа, благодаря чему обработка ошибок и формирование ответов остаются предсказуемыми.
axum можно использовать бесплатно? Какая у него лицензия?
axum распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
axum всё ещё поддерживается?
Активно поддерживается. Последний коммит в axum — 20 окт. 2026 г..
Для чего можно использовать axum?
Создание JSON REST API на Rust с типизированными телами запросов и ответов. Подключение общих middleware, например для трассировки, таймаутов или сжатия, к веб-сервису на Rust. Совместное использование middleware веб-API и сервисами на hyper или tonic.
Как установить axum?
Добавьте axum в проект на Rust (в README нет команды для установки). Скопируйте пример использования из README в src/main.rs. Посмотрите другие примеры кода в каталоге examples.
Где скачать axum?
Исходный код и инструкции по установке — на GitHub: https://github.com/tokio-rs/axum

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

PHP-компонент, который сопоставляет URL входящих HTTP-запросов с конфигурациями маршрутов и генерирует URL по именованным маршрутам.

7,6 тыс.92PHPMITОбновлён 22 часа назад

Python-фреймворк для создания API со стандартными аннотациями типов, автоматической валидацией, документацией OpenAPI и высокой производительностью.

104,1 тыс.+472 за неделю10,1 тыс.PythonMITОбновлён вчера