2021-11-18 04:00:32 +08:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
2022-02-24 16:27:50 +08:00
|
|
|
The format is based on [Keep a Changelog],
|
|
|
|
and this project adheres to [Semantic Versioning].
|
2021-11-18 04:00:32 +08:00
|
|
|
|
|
|
|
# Unreleased
|
|
|
|
|
2022-12-02 18:42:49 +08:00
|
|
|
- **fixed:** Bug fixes for `RouterExt:{route_with_tsr, route_service_with_tsr}` ([#1608]):
|
|
|
|
- Redirects to the correct URI if the route contains path parameters
|
|
|
|
- Keeps query parameters when redirecting
|
|
|
|
- Better improved error message if adding route for `/`
|
|
|
|
|
|
|
|
[#1608]: https://github.com/tokio-rs/axum/pull/1608
|
2022-11-29 17:57:25 +08:00
|
|
|
|
|
|
|
# 0.4.1 (29. November, 2022)
|
|
|
|
|
2022-11-29 17:35:26 +08:00
|
|
|
- **fixed:** Fix wrong `From` impl for `Resource` ([#1589])
|
|
|
|
|
|
|
|
[#1589]: https://github.com/tokio-rs/axum/pull/1589
|
2022-11-09 16:01:47 +08:00
|
|
|
|
2022-11-25 20:29:58 +08:00
|
|
|
# 0.4.0 (25. November, 2022)
|
|
|
|
|
|
|
|
- **added:** Add `RouterExt::route_with_tsr` for adding routes with an
|
|
|
|
additional "trailing slash redirect" route ([#1119])
|
|
|
|
- **added:** Support chaining handlers with `HandlerCallWithExtractors::or` ([#1170])
|
|
|
|
- **added:** Add Protocol Buffer extractor and response ([#1239])
|
|
|
|
- **added:** Add `Either*` types for combining extractors and responses into a
|
|
|
|
single type ([#1263])
|
|
|
|
- **added:** `WithRejection` extractor for customizing other extractors' rejections ([#1262])
|
|
|
|
- **added:** Add sync constructors to `CookieJar`, `PrivateCookieJar`, and
|
|
|
|
`SignedCookieJar` so they're easier to use in custom middleware
|
|
|
|
- **changed:** For methods that accept some `S: Service`, the bounds have been
|
|
|
|
relaxed so the return type can be any type that implements `IntoResponse` rather than being a
|
|
|
|
literal `Response`
|
|
|
|
- **change:** axum-extra's MSRV is now 1.60 ([#1239])
|
|
|
|
- **breaking:** `Form` has a new rejection type ([#1496])
|
|
|
|
- **breaking:** `Query` has a new rejection type ([#1496])
|
|
|
|
- **breaking:** `Resource::nest` and `Resource::nest_collection` have been
|
|
|
|
removed. You can instead convert the `Resource` into a `Router` and
|
|
|
|
add additional routes as necessary ([#1086])
|
|
|
|
- **breaking:** `SignedCookieJar` and `PrivateCookieJar` now extracts the keys
|
|
|
|
from the router's state, rather than extensions
|
|
|
|
- **breaking:** `Resource` has a new `S` type param which represents the state ([#1155])
|
|
|
|
- **breaking:** `RouterExt::route_with_tsr` now only accepts `MethodRouter`s ([#1155])
|
|
|
|
- **added:** `RouterExt::route_service_with_tsr` for routing to any `Service` ([#1155])
|
|
|
|
|
|
|
|
[#1086]: https://github.com/tokio-rs/axum/pull/1086
|
|
|
|
[#1119]: https://github.com/tokio-rs/axum/pull/1119
|
|
|
|
[#1155]: https://github.com/tokio-rs/axum/pull/1155
|
|
|
|
[#1170]: https://github.com/tokio-rs/axum/pull/1170
|
|
|
|
[#1214]: https://github.com/tokio-rs/axum/pull/1214
|
|
|
|
[#1239]: https://github.com/tokio-rs/axum/pull/1239
|
|
|
|
[#1262]: https://github.com/tokio-rs/axum/pull/1262
|
|
|
|
[#1263]: https://github.com/tokio-rs/axum/pull/1263
|
|
|
|
[#1496]: https://github.com/tokio-rs/axum/pull/1496
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>0.4.0 Pre-Releases</summary>
|
|
|
|
|
2022-11-19 20:02:11 +08:00
|
|
|
# 0.4.0-rc.3 (19. November, 2022)
|
|
|
|
|
|
|
|
- **breaking:** Depend axum 0.6.0-rc.5 and axum-macros 0.3.0-rc.3
|
|
|
|
|
2022-11-09 16:01:47 +08:00
|
|
|
# 0.4.0-rc.2 (8. November, 2022)
|
|
|
|
|
2022-11-09 04:45:05 +08:00
|
|
|
- **breaking:** `Form` has a new rejection type ([#1496])
|
|
|
|
- **breaking:** `Query` has a new rejection type ([#1496])
|
|
|
|
|
|
|
|
[#1496]: https://github.com/tokio-rs/axum/pull/1496
|
2022-08-24 04:57:13 +08:00
|
|
|
|
|
|
|
# 0.4.0-rc.1 (23. August, 2022)
|
|
|
|
|
2022-06-30 06:22:43 +08:00
|
|
|
- **added:** Add `RouterExt::route_with_tsr` for adding routes with an
|
|
|
|
additional "trailing slash redirect" route ([#1119])
|
2022-08-11 18:17:08 +08:00
|
|
|
- **breaking:** `Resource::nest` and `Resource::nest_collection` has been
|
|
|
|
removed. You can instead convert the `Resource` into a `Router` and
|
|
|
|
add additional routes as necessary ([#1086])
|
2022-07-20 00:55:15 +08:00
|
|
|
- **changed:** For methods that accept some `S: Service`, the bounds have been
|
|
|
|
relaxed so the response type must implement `IntoResponse` rather than being a
|
|
|
|
literal `Response`
|
2022-08-10 18:09:08 +08:00
|
|
|
- **added:** Support chaining handlers with `HandlerCallWithExtractors::or` ([#1170])
|
2022-08-10 00:43:02 +08:00
|
|
|
- **change:** axum-extra's MSRV is now 1.60 ([#1239])
|
2022-08-17 23:13:31 +08:00
|
|
|
- **breaking:** `SignedCookieJar` and `PrivateCookieJar` now extracts the keys
|
|
|
|
from the router's state, rather than extensions
|
2022-08-15 21:57:07 +08:00
|
|
|
- **added:** Add Protocol Buffer extractor and response ([#1239])
|
2022-08-17 16:57:19 +08:00
|
|
|
- **added:** Add `Either*` types for combining extractors and responses into a
|
|
|
|
single type ([#1263])
|
2022-08-17 15:59:25 +08:00
|
|
|
- **added:** `WithRejection` extractor for customizing other extractors' rejections ([#1262])
|
2022-08-16 21:42:01 +08:00
|
|
|
- **added:** Add sync constructors to `CookieJar`, `PrivateCookieJar`, and
|
|
|
|
`SignedCookieJar` so they're easier to use in custom middleware
|
2022-08-17 23:13:31 +08:00
|
|
|
- **breaking:** `Resource` has a new `S` type param which represents the state ([#1155])
|
|
|
|
- **breaking:** `RouterExt::route_with_tsr` now only accepts `MethodRouter`s ([#1155])
|
|
|
|
- **added:** `RouterExt::route_service_with_tsr` for routing to any `Service` ([#1155])
|
2022-06-30 06:22:43 +08:00
|
|
|
|
2022-08-11 18:17:08 +08:00
|
|
|
[#1086]: https://github.com/tokio-rs/axum/pull/1086
|
2022-06-30 06:22:43 +08:00
|
|
|
[#1119]: https://github.com/tokio-rs/axum/pull/1119
|
2022-08-17 23:13:31 +08:00
|
|
|
[#1155]: https://github.com/tokio-rs/axum/pull/1155
|
2022-08-10 18:09:08 +08:00
|
|
|
[#1170]: https://github.com/tokio-rs/axum/pull/1170
|
2022-08-15 21:57:07 +08:00
|
|
|
[#1214]: https://github.com/tokio-rs/axum/pull/1214
|
2022-08-10 00:43:02 +08:00
|
|
|
[#1239]: https://github.com/tokio-rs/axum/pull/1239
|
2022-08-17 15:59:25 +08:00
|
|
|
[#1262]: https://github.com/tokio-rs/axum/pull/1262
|
2022-08-17 16:57:19 +08:00
|
|
|
[#1263]: https://github.com/tokio-rs/axum/pull/1263
|
2022-06-28 03:08:12 +08:00
|
|
|
|
2022-11-25 20:29:58 +08:00
|
|
|
</details>
|
|
|
|
|
2022-08-21 03:11:02 +08:00
|
|
|
# 0.3.7 (09. August, 2022)
|
|
|
|
|
|
|
|
- **fixed:** Depend on axum 0.5.15 which contains a fix for an accidental breaking change.
|
|
|
|
|
|
|
|
# 0.3.6 (02. July, 2022)
|
|
|
|
|
|
|
|
- **fixed:** Fix feature labels missing in generated docs ([#1137])
|
|
|
|
|
|
|
|
[#1137]: https://github.com/tokio-rs/axum/pull/1137
|
|
|
|
|
2022-06-28 03:08:12 +08:00
|
|
|
# 0.3.5 (27. June, 2022)
|
|
|
|
|
2022-06-21 02:49:18 +08:00
|
|
|
- **added:** Add `JsonLines` for streaming newline delimited JSON ([#1093])
|
2022-08-10 00:43:02 +08:00
|
|
|
- **change:** axum-extra's MSRV is now 1.56 ([#1098])
|
2022-06-18 02:11:35 +08:00
|
|
|
|
2022-06-21 02:49:18 +08:00
|
|
|
[#1093]: https://github.com/tokio-rs/axum/pull/1093
|
2022-06-18 02:11:35 +08:00
|
|
|
[#1098]: https://github.com/tokio-rs/axum/pull/1098
|
2022-06-08 21:58:37 +08:00
|
|
|
|
|
|
|
# 0.3.4 (08. June, 2022)
|
|
|
|
|
2022-06-07 00:00:52 +08:00
|
|
|
- **fixed:** Use `impl IntoResponse` less in docs ([#1049])
|
2022-06-08 17:02:42 +08:00
|
|
|
- **added:** Add `AsyncReadBody` for creating a body from a `tokio::io::AsyncRead` ([#1072])
|
2022-06-07 00:00:52 +08:00
|
|
|
|
|
|
|
[#1049]: https://github.com/tokio-rs/axum/pull/1049
|
2022-06-08 17:02:42 +08:00
|
|
|
[#1072]: https://github.com/tokio-rs/axum/pull/1072
|
2022-05-19 02:29:49 +08:00
|
|
|
|
|
|
|
# 0.3.3 (18. May, 2022)
|
|
|
|
|
2022-05-18 02:19:24 +08:00
|
|
|
- **added:** Add `extract::Query` which supports multi-value items ([#1041])
|
2022-05-19 02:29:49 +08:00
|
|
|
- **added:** Support customizing rejections for `#[derive(TypedPath)]` ([#1012])
|
2022-05-18 02:19:24 +08:00
|
|
|
|
|
|
|
[#1041]: https://github.com/tokio-rs/axum/pull/1041
|
2022-05-19 02:29:49 +08:00
|
|
|
[#1012]: https://github.com/tokio-rs/axum/pull/1012
|
2022-05-16 02:01:00 +08:00
|
|
|
|
|
|
|
# 0.3.2 (15. May, 2022)
|
|
|
|
|
2022-05-16 02:07:29 +08:00
|
|
|
- **added:** Add `extract::Form` which supports multi-value items ([#1031])
|
|
|
|
|
|
|
|
[#1031]: https://github.com/tokio-rs/axum/pull/1031
|
2022-05-10 20:05:36 +08:00
|
|
|
|
|
|
|
# 0.3.1 (10. May, 2022)
|
|
|
|
|
2022-05-06 15:42:10 +08:00
|
|
|
- **fixed:** `Option` and `Result` are now supported in typed path route handler parameters ([#1001])
|
2022-05-06 19:05:30 +08:00
|
|
|
- **fixed:** Support wildcards in typed paths ([#1003])
|
2022-05-18 03:36:05 +08:00
|
|
|
- **added:** Support using a custom rejection type for `#[derive(TypedPath)]`
|
|
|
|
instead of `PathRejection` ([#1012])
|
2022-05-06 15:42:10 +08:00
|
|
|
|
|
|
|
[#1001]: https://github.com/tokio-rs/axum/pull/1001
|
2022-05-06 19:05:30 +08:00
|
|
|
[#1003]: https://github.com/tokio-rs/axum/pull/1003
|
2022-05-18 03:36:05 +08:00
|
|
|
[#1012]: https://github.com/tokio-rs/axum/pull/1012
|
2022-04-27 16:27:41 +08:00
|
|
|
|
|
|
|
# 0.3.0 (27. April, 2022)
|
|
|
|
|
2022-04-07 16:24:01 +08:00
|
|
|
- **fixed:** Don't depend on axum with default features enabled ([#913])
|
2022-04-27 16:27:41 +08:00
|
|
|
- **breaking:** Private and signed cookies now requires enabling the
|
|
|
|
`cookie-private` and `cookie-signed` features respectively ([#949])
|
|
|
|
- **changed:** Update to tower-http 0.3 ([#965])
|
2022-04-07 16:24:01 +08:00
|
|
|
|
|
|
|
[#913]: https://github.com/tokio-rs/axum/pull/913
|
2022-04-27 16:27:41 +08:00
|
|
|
[#949]: https://github.com/tokio-rs/axum/pull/949
|
|
|
|
[#965]: https://github.com/tokio-rs/axum/pull/965
|
2022-04-04 02:18:01 +08:00
|
|
|
|
2022-04-04 02:20:50 +08:00
|
|
|
# 0.2.1 (03. April, 2022)
|
2022-04-04 02:18:01 +08:00
|
|
|
|
2022-04-04 00:29:37 +08:00
|
|
|
- **added:** Re-export `SameSite` and `Expiration` from the `cookie` crate ([#898])
|
|
|
|
- **added:** Add `PrivateCookieJar` for managing private cookies ([#900])
|
2022-04-04 02:18:01 +08:00
|
|
|
- **added:** Add `SpaRouter` for routing setups commonly used for single page applications ([#904])
|
|
|
|
- **fixed:** Fix `SignedCookieJar` when using custom key types ([#899])
|
2022-04-01 17:40:42 +08:00
|
|
|
|
2022-04-04 00:29:37 +08:00
|
|
|
[#898]: https://github.com/tokio-rs/axum/pull/898
|
2022-04-01 17:40:42 +08:00
|
|
|
[#899]: https://github.com/tokio-rs/axum/pull/899
|
2022-04-04 00:29:37 +08:00
|
|
|
[#900]: https://github.com/tokio-rs/axum/pull/900
|
2022-04-04 02:18:01 +08:00
|
|
|
[#904]: https://github.com/tokio-rs/axum/pull/904
|
2022-04-01 02:48:17 +08:00
|
|
|
|
|
|
|
# 0.2.0 (31. March, 2022)
|
|
|
|
|
2022-02-28 16:58:22 +08:00
|
|
|
- **added:** Add `TypedPath::to_uri` for converting the path into a `Uri` ([#790])
|
2022-03-04 17:53:36 +08:00
|
|
|
- **added:** Extractors and responses for dealing with cookies. See `extract::cookies` for more
|
|
|
|
details ([#816])
|
2022-01-13 16:49:55 +08:00
|
|
|
- **breaking:** `CachedRejection` has been removed ([#699])
|
2022-01-25 16:46:26 +08:00
|
|
|
- **breaking:** `<Cached<T> as FromRequest>::Rejection` is now `T::Rejection`. ([#699])
|
2022-04-01 02:21:55 +08:00
|
|
|
- **breaking:** `middleware::from_fn` has been remove from axum-extra and moved into the main
|
|
|
|
axum crate ([#719])
|
2022-03-04 05:50:31 +08:00
|
|
|
- **breaking:** `HasRoutes` has been removed. `Router::merge` now accepts `Into<Router>` ([#819])
|
|
|
|
- **breaking:** `RouterExt::with` method has been removed. Use `Router::merge` instead. It works
|
|
|
|
identically ([#819])
|
2021-12-28 06:28:58 +08:00
|
|
|
|
2022-01-13 16:49:55 +08:00
|
|
|
[#699]: https://github.com/tokio-rs/axum/pull/699
|
2022-01-25 17:19:06 +08:00
|
|
|
[#719]: https://github.com/tokio-rs/axum/pull/719
|
2022-02-28 16:58:22 +08:00
|
|
|
[#790]: https://github.com/tokio-rs/axum/pull/790
|
2022-03-04 17:53:36 +08:00
|
|
|
[#816]: https://github.com/tokio-rs/axum/pull/816
|
2022-03-04 05:50:31 +08:00
|
|
|
[#819]: https://github.com/tokio-rs/axum/pull/819
|
2021-12-27 22:23:02 +08:00
|
|
|
|
2022-04-01 02:21:55 +08:00
|
|
|
# 0.1.5 (1. March, 2022)
|
|
|
|
|
|
|
|
- **added:** Add `TypedPath::to_uri` for converting the path into a `Uri` ([#790])
|
|
|
|
|
|
|
|
[#790]: https://github.com/tokio-rs/axum/pull/790
|
|
|
|
|
|
|
|
# 0.1.4 (22. February, 2022)
|
|
|
|
|
|
|
|
- **fix:** Depend on the right versions of axum and axum-macros ([#782])
|
|
|
|
|
|
|
|
[#782]: https://github.com/tokio-rs/axum/pull/782
|
|
|
|
|
|
|
|
# 0.1.3 (22. February, 2022)
|
|
|
|
|
|
|
|
- **added:** Add type safe routing. See `axum_extra::routing::typed` for more details ([#756])
|
|
|
|
- **fix:** Depend on tower with `default_features = false` ([#666])
|
|
|
|
- **change:** `middleware::from_fn` has been deprecated and moved into the main
|
|
|
|
axum crate ([#719])
|
|
|
|
|
|
|
|
[#666]: https://github.com/tokio-rs/axum/pull/666
|
|
|
|
[#719]: https://github.com/tokio-rs/axum/pull/719
|
|
|
|
[#756]: https://github.com/tokio-rs/axum/pull/756
|
|
|
|
|
2022-02-24 16:27:50 +08:00
|
|
|
# 0.1.2 (13. January, 2022)
|
2022-01-25 16:46:26 +08:00
|
|
|
|
|
|
|
- **fix:** Depend on tower with `default_features = false` ([#666])
|
|
|
|
|
2021-12-27 22:23:02 +08:00
|
|
|
# 0.1.1 (27. December, 2021)
|
|
|
|
|
2021-12-27 21:01:26 +08:00
|
|
|
- Add `middleware::from_fn` for creating middleware from async functions ([#656])
|
2021-12-28 17:19:24 +08:00
|
|
|
- Add support for returning pretty JSON response in `response::ErasedJson` ([#662])
|
2021-12-27 21:01:26 +08:00
|
|
|
|
|
|
|
[#656]: https://github.com/tokio-rs/axum/pull/656
|
2021-12-28 17:19:24 +08:00
|
|
|
[#662]: https://github.com/tokio-rs/axum/pull/662
|
2021-12-03 03:02:38 +08:00
|
|
|
|
|
|
|
# 0.1.0 (02. December, 2021)
|
|
|
|
|
|
|
|
- Initial release.
|
2022-02-24 16:27:50 +08:00
|
|
|
|
|
|
|
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
|
|
|
|
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
|