axum v0.8.2
- **добавлено:** Реализация `OptionalFromRequest` для `Json`
- **добавлено:** Реализация `OptionalFromRequest` для `Extension`
- **изменено:** Преобразование функции `status` отказов в `const` функцию, например, `JsonRejection`, `QueryRejection` и `PathRejection`
axum v0.8.0-rc.1- **разрывающий:** Переместить извлечение `Host` в `axum-extra` ([#2956])
- **разрывающий:** Удалить `WebSocket::close`.
Пользователи должны явно отправлять сообщения о закрытии самостоятельно. ([#2974])
- **разрывающий:** Сделать `serve` универсальным для типов прослушивания и IO ([#2941])
- **разрывающий:** Удалить `Serve::tcp_nodelay` и `WithGracefulShutdown::tcp_nodelay`.
См. `serve::ListenerExt` для API, который позволяет устанавливать произвольные свойства TCP-соединения. ([#2941])
- **разрывающий:** `Option<Path<T>>` и `Option<Query<T>>` больше не заглатывают все условия ошибок,
вместо этого отклоняют запрос в большинстве случаев; см. документацию для подробностей ([#2475])
- **исправлено:** Пропускать неподдерживаемые SSE символы `serde_json::RawValue` в `Event::json_data` ([#2992])
- **исправлено:** Не вызывать паники при использовании массивного типа для сегмента пути ([#3039])
- **исправлено:** Избегать установки `content-length` до middleware.
Это позволяет middleware добавлять тела запросов без необходимости вручную устанавливать `content-length` ([#2897])
- **добавлено:** Добавить `method_not_allowed_fallback` для установки запасного пути, когда путь соответствует, но нет обработчика для данного HTTP-метода ([#2903])
- **добавлено:** Добавить `NoContent` как сокращение для `StatusCode::NO_CONTENT` ([#2978])
- **добавлено:** Добавить поддержку WebSockets через HTTP/2.
Они могут быть включены путем изменения обработчиков `get(ws_endpoint)` на `any(ws_endpoint)` ([#2894])
- **добавлено:** Добавить `MethodFilter::CONNECT`, `routing::connect[_service]`
и `MethodRouter::connect[_service]` ([#2961])- **добавлено:** Расширить перечисление `FailedToDeserializePathParams::kind` (`ErrorKind::DeserializeError`).
Это новое значение представляет собой `key`, `value` и `message` из ошибок парсинга именованных параметров пути,
вместо одного сообщения об ошибке десериализации в `ErrorKind::Message`. ([#2720])[#2475]: https://github.com/tokio-rs/axum/pull/2475
[#2897]: https://github.com/tokio-rs/axum/pull/2897
[#2903]: https://github.com/tokio-rs/axum/pull/2903
[#2894]: https://github.com/tokio-rs/axum/pull/2894
[#2956]: https://github.com/tokio-rs/axum/pull/2956
[#2961]: https://github.com/tokio-rs/axum/pull/2961
[#2974]: https://github.com/tokio-rs/axum/pull/2974
[#2978]: https://github.com/tokio-rs/axum/pull/2978
[#2992]: https://github.com/tokio-rs/axum/pull/2992
[#2720]: https://github.com/tokio-rs/axum/pull/2720
[#3039]: https://github.com/tokio-rs/axum/pull/3039
[#2941]: https://github.com/tokio-rs/axum/pull/2941
-----BEGIN PGP SIGNATURE-----
iIwEABYKADQWIQSDGkJBzFPeoiYaT9p9Jh13HZFTeAUCZ2IAcRYcanBsYXR0ZStn
aXRAcG9zdGVvLmRlAAoJEH0mHXcdkVN4h5AA/ib64a3rv+bXrDDOxqmcO5/w4ceJ
TbwU2a3HOHyn/CTTAP4i9r88Vc+RF3QN83osTGo1nU78tIMymcLwBBYEoRtvBg==
=crPj
-----Конец подписи PGP-----
axum v0.8.0-alpha.1
- **разрывающий:** Требуется `Sync` для всех обработчиков и служб, добавленных в `Router`
и `MethodRouter` ([#2473])
- **разрывающий:** Десериализаторы извлечения `Path` в виде кортежа и структуры кортежа теперь проверяют, что количество параметров точно соответствует длине кортежа ([#2931])
- **разрывающий:** Обновление matchit до версии 0.8, изменяющее синтаксис параметров пути с `/:single` и `/*many`
на `/{single}` и `/{*many}`; старый синтаксис приводит к панике, чтобы избежать незаметного изменения поведения ([#2645])
- **изменение:** Обновление минимальной версии Rust до 1.75 ([#2943])
[#2473]: https://github.com/tokio-rs/axum/pull/2473
[#2645]: https://github.com/tokio-rs/axum/pull/2645
[#2931]: https://github.com/tokio-rs/axum/pull/2931
[#2943]: https://github.com/tokio-rs/axum/pull/2943
axum v0.7.9
- **исправлено:** Предотвращение установки размера содержимого до применения middleware ([#3031])
[#3031]:https://github.com/tokio-rs/axum/pull/3031
axum v0.7.8
- **исправлено:** Пропуск несовместимых символов SSE в `serde_json::RawValue` в `Event::json_data` ([#2992])
- **добавлено:** Добавлено `method_not_allowed_fallback` для установки альтернативного обработчика, когда путь соответствует, но нет обработчика для данного HTTP-метода ([#2903])
- **добавлено:** Добавлены `MethodFilter::CONNECT`, `routing::connect[_service]` и `MethodRouter::connect[_service]` ([#2961])
- **добавлено:** Добавлено `NoContent` как сокращение для `StatusCode::NO_CONTENT` ([#2978])
[#2903]: https://github.com/tokio-rs/axum/pull/2903
[#2961]: https://github.com/tokio-rs/axum/pull/2961
[#2978]: https://github.com/tokio-rs/axum/pull/2978
[#2992]: https://github.com/tokio-rs/axum/pull/2992
axum v0.7.7
- **изменение**: Удалены ручные оглавления из документации, так как
rustdoc теперь генерирует оглавления в боковой панели ([#2921])
[#2921]: https://github.com/tokio-rs/axum/pull/2921
axum v0.7.6
- **изменение:** Избегать клонирования `Arc` при десериализации `Path`
- **добавлено:** `axum::serve::Serve::tcp_nodelay` и `axum::serve::WithGracefulShutdown::tcp_nodelay` ([#2653])
- **добавлено:** функция `Router::has_routes` ([#2790])
- **изменение:** Обновление tokio-tungstenite до версии 0.23 ([#2841])
- **добавлено:** функции `Serve::local_addr` и `WithGracefulShutdown::local_addr` ([#2881])
[#2653]: https://github.com/tokio-rs/axum/pull/2653
[#2790]: https://github.com/tokio-rs/axum/pull/2790
[#2841]: https://github.com/tokio-rs/axum/pull/2841
[#2881]: https://github.com/tokio-rs/axum/pull/2881
axum-macros v0.5.0-rc.1
С момента версии v0.5.0-alpha.1 изменений не было.
axum-macros v0.5.0-alpha.1
- **breaking:** Обновление генерации кода для axum-core 0.5.0-alpha.1
- **change:** Обновление минимальной версии Rust до 1.75 ([#2943])
[#2943]: https://github.com/tokio-rs/axum/pull/2943
axum-macros v0.5.0
В данном тексте нет перевода необходимых фрагментов, так как текст содержит только метаданные и цифры без текстовых описаний на другом языке.
axum-macros v0.4.2
- **добавлено:** Добавлен `#[debug_middleware]` ([#1993], [#2725])
[#1993]: https://github.com/tokio-rs/axum/pull/1993
[#2725]: https://github.com/tokio-rs/axum/pull/2725
axum-extra v0.9.6
- **документация:** Добавлены ссылки на таблицу функций ([#3030])
[#3030]: https://github.com/tokio-rs/axum/pull/3030
axum-extra v0.9.5
- **добавлено:** Добавлен метод `RouterExt::typed_connect` ([#2961])
- **добавлено:** Добавлен макрос `json!` для удобного построения JSON-ответов ([#2962])
[#2961]: https://github.com/tokio-rs/axum/pull/2961
[#2962]: https://github.com/tokio-rs/axum/pull/2962
axum-extra v0.9.4
- **добавлено:** тип `response::Attachment` ([#2789])
[#2789]: https://github.com/tokio-rs/axum/pull/2789
axum-extra v0.11.0
- **разрушение:** Удалено неиспользуемое свойство `async-stream`, которое случайно было введено как неявное свойство через опциональную зависимость, которая больше не используется.
- **исправлено:** Исправлена прерванная ссылка в документации `ErasedJson`.
- **изменено:** Сделано свойство `status` отклонений константным, таким образом, как `FormRejection`, `QueryRejection` и `MultipartRejection`.
axum-extra v0.10.0-rc.1
- **разрывающий:** `Option<Query<T>>` больше не поглощает все условия ошибок, вместо этого отклоняет запрос в большинстве случаев; см. документацию для подробностей ([#2475])
- **изменено:** Устаревшие `OptionalPath<T>` и `OptionalQuery<T>` ([#2475])
- **исправлено:** `Host` извлечение теперь включает номер порта при парсинге авторитета ([#2242])
- **изменено:** Функция `multipart` больше не включена по умолчанию ([#3058])
- **добавлено:** Добавлено `RouterExt::typed_connect` ([#2961])
- **добавлено:** Добавлено `json!` для удобного построения JSON-ответов ([#2962])
- **добавлено:** Добавлен ответ `InternalServerError` для логирования внутренней ошибки и возврата HTTP 500 удобным образом. ([#3010])
- **добавлено:** Добавлено `FileStream` для удобного построения ответов потока файла ([#3047])
[#2242]: https://github.com/tokio-rs/axum/pull/2242
[#2475]: https://github.com/tokio-rs/axum/pull/2475
[#3058]: https://github.com/tokio-rs/axum/pull/3058
[#2961]: https://github.com/tokio-rs/axum/pull/2961
[#2962]: https://github.com/tokio-rs/axum/pull/2962
[#3010]: https://github.com/tokio-rs/axum/pull/3010
[#3047]: https://github.com/tokio-rs/axum/pull/3047