axum 0.8.0-rc.1 (#3073)

This commit is contained in:
Jonas Platte 2024-12-17 17:47:42 -05:00 committed by GitHub
parent c596deafe4
commit 5cdd8a4f18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 35 additions and 24 deletions

View file

@ -7,14 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
# Unreleased # Unreleased
# 0.5.0
## rc.1
- **breaking:**: `Option<T>` as an extractor now requires `T` to implement the - **breaking:**: `Option<T>` as an extractor now requires `T` to implement the
new trait `OptionalFromRequest` (if used as the last extractor) or new trait `OptionalFromRequest` (if used as the last extractor) or
`OptionalFromRequestParts` (other extractors) ([#2475]) `OptionalFromRequestParts` (other extractors) ([#2475])
[#2475]: https://github.com/tokio-rs/axum/pull/2475 [#2475]: https://github.com/tokio-rs/axum/pull/2475
# 0.5.0
## alpha.1 ## alpha.1
- **breaking:** Replace `#[async_trait]` with [return-position `impl Trait` in traits][RPITIT] ([#2308]) - **breaking:** Replace `#[async_trait]` with [return-position `impl Trait` in traits][RPITIT] ([#2308])

View file

@ -9,7 +9,7 @@ license = "MIT"
name = "axum-core" name = "axum-core"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tokio-rs/axum" repository = "https://github.com/tokio-rs/axum"
version = "0.5.0-alpha.1" # remember to bump the version that axum and axum-extra depend on version = "0.5.0-rc.1" # remember to bump the version that axum and axum-extra depend on
[features] [features]
tracing = ["dep:tracing"] tracing = ["dep:tracing"]

View file

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning].
# Unreleased # Unreleased
# 0.10.0
## rc.1
- **breaking:** `Option<Query<T>>` no longer swallows all error conditions, instead rejecting the - **breaking:** `Option<Query<T>>` no longer swallows all error conditions, instead rejecting the
request in many cases; see its documentation for details ([#2475]) request in many cases; see its documentation for details ([#2475])
- **changed:** Deprecated `OptionalPath<T>` and `OptionalQuery<T>` ([#2475]) - **changed:** Deprecated `OptionalPath<T>` and `OptionalQuery<T>` ([#2475])
@ -26,9 +30,7 @@ and this project adheres to [Semantic Versioning].
[#3010]: https://github.com/tokio-rs/axum/pull/3010 [#3010]: https://github.com/tokio-rs/axum/pull/3010
[#3047]: https://github.com/tokio-rs/axum/pull/3047 [#3047]: https://github.com/tokio-rs/axum/pull/3047
# 0.10.0 ## alpha.1
# alpha.1
- **breaking:** Update to prost 0.13. Used for the `Protobuf` extractor ([#2829]) - **breaking:** Update to prost 0.13. Used for the `Protobuf` extractor ([#2829])
- **change:** Update minimum rust version to 1.75 ([#2943]) - **change:** Update minimum rust version to 1.75 ([#2943])

View file

@ -9,7 +9,7 @@ license = "MIT"
name = "axum-extra" name = "axum-extra"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tokio-rs/axum" repository = "https://github.com/tokio-rs/axum"
version = "0.10.0-alpha.1" version = "0.10.0-rc.1"
[features] [features]
default = ["tracing"] default = ["tracing"]
@ -42,8 +42,8 @@ typed-header = ["dep:headers"]
typed-routing = ["dep:axum-macros", "dep:percent-encoding", "dep:serde_html_form", "dep:form_urlencoded"] typed-routing = ["dep:axum-macros", "dep:percent-encoding", "dep:serde_html_form", "dep:form_urlencoded"]
[dependencies] [dependencies]
axum = { path = "../axum", version = "0.8.0-alpha.1", default-features = false, features = ["original-uri"] } axum = { path = "../axum", version = "0.8.0-rc.1", default-features = false, features = ["original-uri"] }
axum-core = { path = "../axum-core", version = "0.5.0-alpha.1" } axum-core = { path = "../axum-core", version = "0.5.0-rc.1" }
bytes = "1.1.0" bytes = "1.1.0"
futures-util = { version = "0.3", default-features = false, features = ["alloc"] } futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
http = "1.0.0" http = "1.0.0"
@ -58,7 +58,7 @@ tower-service = "0.3"
# optional dependencies # optional dependencies
async-stream = { version = "0.3", optional = true } async-stream = { version = "0.3", optional = true }
axum-macros = { path = "../axum-macros", version = "0.5.0-alpha.1", optional = true } axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true }
cookie = { package = "cookie", version = "0.18.0", features = ["percent-encode"], optional = true } cookie = { package = "cookie", version = "0.18.0", features = ["percent-encode"], optional = true }
fastrand = { version = "2.1.0", optional = true } fastrand = { version = "2.1.0", optional = true }
form_urlencoded = { version = "1.1.0", optional = true } form_urlencoded = { version = "1.1.0", optional = true }

View file

@ -9,7 +9,7 @@ license = "MIT"
name = "axum-macros" name = "axum-macros"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tokio-rs/axum" repository = "https://github.com/tokio-rs/axum"
version = "0.5.0-alpha.1" # remember to also bump the version that axum and axum-extra depends on version = "0.5.0-rc.1" # remember to also bump the version that axum and axum-extra depends on
[features] [features]
default = [] default = []

View file

@ -7,26 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
# Unreleased # Unreleased
# 0.8.0
## rc.1
*Note: there are further relevant changes in [axum-core's changelog][core-changelog]*
- **breaking:** Move `Host` extractor to `axum-extra` ([#2956])
- **breaking:** Remove `WebSocket::close`.
Users should explicitly send close messages themselves. ([#2974])
- **breaking:** Make `serve` generic over the listener and IO types ([#2941])
- **breaking:** Remove `Serve::tcp_nodelay` and `WithGracefulShutdown::tcp_nodelay`.
See `serve::ListenerExt` for an API that let you set arbitrary TCP stream properties. ([#2941])
- **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])
- **fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992]) - **fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992])
- **fixed:** Don't panic when array type is used for path segment ([#3039]) - **fixed:** Don't panic when array type is used for path segment ([#3039])
- **breaking:** Move `Host` extractor to `axum-extra` ([#2956]) - **fixed:** Avoid setting `content-length` before middleware.
This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897])
- **added:** Add `method_not_allowed_fallback` to set a fallback when a path matches but there is no handler for the given HTTP method ([#2903]) - **added:** Add `method_not_allowed_fallback` to set a fallback when a path matches but there is no handler for the given HTTP method ([#2903])
- **added:** Add `NoContent` as a self-described shortcut for `StatusCode::NO_CONTENT` ([#2978]) - **added:** Add `NoContent` as a self-described shortcut for `StatusCode::NO_CONTENT` ([#2978])
- **added:** Add support for WebSockets over HTTP/2. - **added:** Add support for WebSockets over HTTP/2.
They can be enabled by changing `get(ws_endpoint)` handlers to `any(ws_endpoint)` ([#2894]) They can be enabled by changing `get(ws_endpoint)` handlers to `any(ws_endpoint)` ([#2894])
- **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]` - **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]`
and `MethodRouter::connect[_service]` ([#2961]) and `MethodRouter::connect[_service]` ([#2961])
- **fixed:** Avoid setting `content-length` before middleware.
This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897])
- **breaking:** Remove `WebSocket::close`.
Users should explicitly send close messages themselves. ([#2974])
- **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])
- **added:** Extend `FailedToDeserializePathParams::kind` enum with (`ErrorKind::DeserializeError`) - **added:** Extend `FailedToDeserializePathParams::kind` enum with (`ErrorKind::DeserializeError`)
This new variant captures both `key`, `value`, and `message` from named path parameters parse errors, This new variant captures both `key`, `value`, and `message` from named path parameters parse errors,
instead of only deserialization error message in `ErrorKind::Message`. ([#2720]) instead of only deserialization error message in `ErrorKind::Message`. ([#2720])
- **breaking:** Make `serve` generic over the listener and IO types ([#2941])
[core-changelog]: ../axum-core/CHANGELOG.md
[#2475]: https://github.com/tokio-rs/axum/pull/2475 [#2475]: https://github.com/tokio-rs/axum/pull/2475
[#2897]: https://github.com/tokio-rs/axum/pull/2897 [#2897]: https://github.com/tokio-rs/axum/pull/2897
[#2903]: https://github.com/tokio-rs/axum/pull/2903 [#2903]: https://github.com/tokio-rs/axum/pull/2903
@ -40,8 +49,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#3039]: https://github.com/tokio-rs/axum/pull/3039 [#3039]: https://github.com/tokio-rs/axum/pull/3039
[#2941]: https://github.com/tokio-rs/axum/pull/2941 [#2941]: https://github.com/tokio-rs/axum/pull/2941
# 0.8.0
## alpha.1 ## alpha.1
- **breaking:** Require `Sync` for all handlers and services added to `Router` - **breaking:** Require `Sync` for all handlers and services added to `Router`

View file

@ -1,6 +1,6 @@
[package] [package]
name = "axum" name = "axum"
version = "0.8.0-alpha.1" # remember to bump the version that axum-extra and axum-macros depend on version = "0.8.0-rc.1" # remember to bump the version that axum-extra and axum-macros depend on
categories = ["asynchronous", "network-programming", "web-programming::http-server"] categories = ["asynchronous", "network-programming", "web-programming::http-server"]
description = "Web framework that focuses on ergonomics and modularity" description = "Web framework that focuses on ergonomics and modularity"
edition = "2021" edition = "2021"
@ -46,7 +46,7 @@ __private_docs = [
] ]
[dependencies] [dependencies]
axum-core = { path = "../axum-core", version = "0.5.0-alpha.1" } axum-core = { path = "../axum-core", version = "0.5.0-rc.1" }
bytes = "1.0" bytes = "1.0"
futures-util = { version = "0.3", default-features = false, features = ["alloc"] } futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
http = "1.0.0" http = "1.0.0"
@ -66,7 +66,7 @@ tower-layer = "0.3.2"
tower-service = "0.3" tower-service = "0.3"
# optional dependencies # optional dependencies
axum-macros = { path = "../axum-macros", version = "0.5.0-alpha.1", optional = true } axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true }
base64 = { version = "0.22.1", optional = true } base64 = { version = "0.22.1", optional = true }
hyper = { version = "1.1.0", optional = true } hyper = { version = "1.1.0", optional = true }
hyper-util = { version = "0.1.3", features = ["tokio", "server", "service"], optional = true } hyper-util = { version = "0.1.3", features = ["tokio", "server", "service"], optional = true }