{"ecosystem":"cargo","package":"axum-macros","from_version":null,"to_version":null,"changes":[{"from_version":"axum-extra-v0.10.0-rc.1","to_version":"axum-v0.8.0-rc.1","change_type":"breaking","description":"**breaking:** Remove `Serve::tcp_nodelay` and `WithGracefulShutdown::tcp_nodelay`. See `serve::ListenerExt` for an API that let you set arbitrary TCP stream properties. ([#2941])","migration_hint":null},{"from_version":"axum-extra-v0.10.0-rc.1","to_version":"axum-v0.8.0-rc.1","change_type":"breaking","description":"**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])","migration_hint":null},{"from_version":"axum-extra-v0.10.0-rc.1","to_version":"axum-v0.8.0-rc.1","change_type":"breaking","description":"**fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992])","migration_hint":null},{"from_version":"axum-extra-v0.10.0-rc.1","to_version":"axum-v0.8.0-rc.1","change_type":"breaking","description":"**breaking:** Remove `WebSocket::close`. Users should explicitly send close messages themselves. ([#2974])","migration_hint":null},{"from_version":"axum-extra-v0.10.0-rc.1","to_version":"axum-v0.8.0-rc.1","change_type":"breaking","description":"**breaking:** Make `serve` generic over the listener and IO types ([#2941])","migration_hint":null},{"from_version":"axum-macros-v0.5.0","to_version":"axum-v0.8.0","change_type":"breaking","description":"**breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088])","migration_hint":null},{"from_version":"axum-macros-v0.5.0","to_version":"axum-v0.8.0","change_type":"breaking","description":"**changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078])","migration_hint":null},{"from_version":"axum-macros-v0.5.0","to_version":"axum-v0.8.0","change_type":"breaking","description":"**changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) </details>","migration_hint":null},{"from_version":"axum-extra-v0.10.0","to_version":"axum-macros-v0.5.0","change_type":"breaking","description":"**change:** Update minimum rust version to 1.75 ([#2943]) [#2943]: https://github.com/tokio-rs/axum/pull/2943","migration_hint":null},{"from_version":"axum-v0.8.5","to_version":"axum-extra-v0.12.0","change_type":"breaking","description":"The handler utilities require `handler` feature.","migration_hint":null},{"from_version":"axum-v0.8.5","to_version":"axum-extra-v0.12.0","change_type":"breaking","description":"The middleware utilities require `middleware` feature.","migration_hint":null},{"from_version":"axum-v0.8.5","to_version":"axum-extra-v0.12.0","change_type":"breaking","description":"**breaking:** `option_layer` now maps the `Response` body type to `axum::body::Body` ([#3469])","migration_hint":null},{"from_version":"axum-v0.8.5","to_version":"axum-extra-v0.12.0","change_type":"breaking","description":"**breaking:** Some new features are added which need to be opted in ([#3485]).","migration_hint":null},{"from_version":"axum-v0.8.5","to_version":"axum-extra-v0.12.0","change_type":"breaking","description":"`Cached` extractor requires `cached` feature.","migration_hint":null},{"from_version":"axum-core-v0.5.1","to_version":"axum-extra-v0.11.0","change_type":"breaking","description":"**fixed:** Fix a broken link in the documentation of `ErasedJson` ([#3186])","migration_hint":null},{"from_version":"axum-core-v0.5.1","to_version":"axum-extra-v0.11.0","change_type":"breaking","description":"**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","migration_hint":null},{"from_version":"axum-core-v0.5.0-rc.1","to_version":"axum-extra-v0.10.0-rc.1","change_type":"breaking","description":"**added:** Add `json!` for easy construction of JSON responses ([#2962])","migration_hint":null},{"from_version":"axum-core-v0.5.0-rc.1","to_version":"axum-extra-v0.10.0-rc.1","change_type":"breaking","description":"**changed:** Deprecated `OptionalPath<T>` and `OptionalQuery<T>` ([#2475])","migration_hint":null},{"from_version":"axum-core-v0.5.0-rc.1","to_version":"axum-extra-v0.10.0-rc.1","change_type":"breaking","description":"**changed:** The `multipart` feature is no longer on by default ([#3058])","migration_hint":null},{"from_version":"axum-core-v0.5.0-rc.1","to_version":"axum-extra-v0.10.0-rc.1","change_type":"breaking","description":"**added:** Add `RouterExt::typed_connect` ([#2961])","migration_hint":null},{"from_version":"axum-core-v0.5.0-rc.1","to_version":"axum-extra-v0.10.0-rc.1","change_type":"breaking","description":"**fixed:** `Host` extractor includes port number when parsing authority ([#2242])","migration_hint":null},{"from_version":"axum-core-v0.5.0","to_version":"axum-extra-v0.10.0","change_type":"breaking","description":"**changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])","migration_hint":null},{"from_version":"axum-core-v0.5.0","to_version":"axum-extra-v0.10.0","change_type":"breaking","description":"**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>","migration_hint":null},{"from_version":"axum-core-v0.5.0","to_version":"axum-extra-v0.10.0","change_type":"breaking","description":"**changed:** Update minimum rust version to 1.75 ([#2943])","migration_hint":null},{"from_version":"axum-core-v0.5.0","to_version":"axum-extra-v0.10.0","change_type":"breaking","description":"**changed:** Deprecated `OptionalPath<T>` ([#2475])","migration_hint":null},{"from_version":"axum-core-v0.5.0","to_version":"axum-extra-v0.10.0","change_type":"breaking","description":"**changed:** The `multipart` feature is no longer on by default ([#3058])","migration_hint":null},{"from_version":"axum-v0.8.0-rc.1","to_version":"axum-core-v0.5.0","change_type":"breaking","description":"**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","migration_hint":null},{"from_version":"axum-v0.8.0-rc.1","to_version":"axum-core-v0.5.0","change_type":"breaking","description":"**change:** Update minimum rust version to 1.75 ([#2943])","migration_hint":null},{"from_version":"axum-v0.8.0-rc.1","to_version":"axum-core-v0.5.0","change_type":"breaking","description":"**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])","migration_hint":null}],"total":29,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"hit"}