axum-extra breaking changes
cargo29 curated breaking changes across major versions of axum-extra. Use this as a migration checklist before bumping dependencies.
- axum-extra-v0.10.0-rc.1 \u2192 axum-v0.8.0-rc.1breaking
**breaking:** Remove `WebSocket::close`. Users should explicitly send close messages themselves. ([#2974])
- axum-extra-v0.10.0-rc.1 \u2192 axum-v0.8.0-rc.1breaking
**fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992])
- axum-extra-v0.10.0-rc.1 \u2192 axum-v0.8.0-rc.1breaking
**breaking:** `Option<Path<T>>` and `Option<Query<T>>` no longer swallow all error conditions, instead rejecting the request in many cases; see their documentation for details ([#2475])
- axum-extra-v0.10.0-rc.1 \u2192 axum-v0.8.0-rc.1breaking
**breaking:** Remove `Serve::tcp_nodelay` and `WithGracefulShutdown::tcp_nodelay`. See `serve::ListenerExt` for an API that let you set arbitrary TCP stream properties. ([#2941])
- axum-extra-v0.10.0-rc.1 \u2192 axum-v0.8.0-rc.1breaking
**breaking:** Make `serve` generic over the listener and IO types ([#2941])
- axum-macros-v0.5.0 \u2192 axum-v0.8.0breaking
**changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) </details>
- axum-macros-v0.5.0 \u2192 axum-v0.8.0breaking
**breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088])
- axum-macros-v0.5.0 \u2192 axum-v0.8.0breaking
**changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078])
- axum-extra-v0.10.0 \u2192 axum-macros-v0.5.0breaking
**change:** Update minimum rust version to 1.75 ([#2943]) [#2943]: https://github.com/tokio-rs/axum/pull/2943
- axum-v0.8.5 \u2192 axum-extra-v0.12.0breaking
The middleware utilities require `middleware` feature.
- axum-v0.8.5 \u2192 axum-extra-v0.12.0breaking
`Cached` extractor requires `cached` feature.
- axum-v0.8.5 \u2192 axum-extra-v0.12.0breaking
The handler utilities require `handler` feature.
- axum-v0.8.5 \u2192 axum-extra-v0.12.0breaking
**breaking:** `option_layer` now maps the `Response` body type to `axum::body::Body` ([#3469])
- axum-v0.8.5 \u2192 axum-extra-v0.12.0breaking
**breaking:** Some new features are added which need to be opted in ([#3485]).
- axum-core-v0.5.1 \u2192 axum-extra-v0.11.0breaking
**changed:** Make the `status` function of rejections a `const` function, such as `FormRejection`, `QueryRejection` and `MultipartRejection` ([#3168]) [#3145]: https://github.com/tokio-rs/axum/pull/3145 [#3168]: https://github.com/tokio-rs/axum/pull/3168 [#3186]: https://github.com/tokio-rs/axum/pull/3186
- axum-core-v0.5.1 \u2192 axum-extra-v0.11.0breaking
**fixed:** Fix a broken link in the documentation of `ErasedJson` ([#3186])
- axum-core-v0.5.0-rc.1 \u2192 axum-extra-v0.10.0-rc.1breaking
**added:** Add `json!` for easy construction of JSON responses ([#2962])
- axum-core-v0.5.0-rc.1 \u2192 axum-extra-v0.10.0-rc.1breaking
**changed:** Deprecated `OptionalPath<T>` and `OptionalQuery<T>` ([#2475])
- axum-core-v0.5.0-rc.1 \u2192 axum-extra-v0.10.0-rc.1breaking
**fixed:** `Host` extractor includes port number when parsing authority ([#2242])
- axum-core-v0.5.0-rc.1 \u2192 axum-extra-v0.10.0-rc.1breaking
**changed:** The `multipart` feature is no longer on by default ([#3058])
- axum-core-v0.5.0-rc.1 \u2192 axum-extra-v0.10.0-rc.1breaking
**added:** Add `RouterExt::typed_connect` ([#2961])
- axum-core-v0.5.0 \u2192 axum-extra-v0.10.0breaking
**changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])
- axum-core-v0.5.0 \u2192 axum-extra-v0.10.0breaking
**changed:** Deprecated `OptionalPath<T>` ([#2475])
- axum-core-v0.5.0 \u2192 axum-extra-v0.10.0breaking
**changed:** Update minimum rust version to 1.75 ([#2943])
- axum-core-v0.5.0 \u2192 axum-extra-v0.10.0breaking
**changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) [#3088]: https://github.com/tokio-rs/axum/pull/3088 </details>
- axum-core-v0.5.0 \u2192 axum-extra-v0.10.0breaking
**changed:** The `multipart` feature is no longer on by default ([#3058])
- axum-v0.8.0-rc.1 \u2192 axum-core-v0.5.0breaking
**change:** The `Display` impl of all rejections generated by the `define_rejection!()` will now include the `Display` output of the inner error too. This matches the `body_text()` fn output now. ([#3118]) [#3118]: https://github.com/tokio-rs/axum/pull/3118 [#2475]: https://github.com/tokio-rs/axum/pull/2475 [RPITIT]: https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html [#2308]: https://github.com/tokio-rs/axum/pull/2308 [#2943]: https://github.com/tokio-rs/axum/pull/2943
- axum-v0.8.0-rc.1 \u2192 axum-core-v0.5.0breaking
**breaking:**: `Option<T>` as an extractor now requires `T` to implement the new trait `OptionalFromRequest` (if used as the last extractor) or `OptionalFromRequestParts` (other extractors) ([#2475])
- axum-v0.8.0-rc.1 \u2192 axum-core-v0.5.0breaking
**change:** Update minimum rust version to 1.75 ([#2943])
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/axum-extra