Skip to content

Commit 926543f

Browse files
committed
Release axum v0.8.0
1 parent c8259dc commit 926543f

File tree

9 files changed

+172
-83
lines changed

9 files changed

+172
-83
lines changed

Cargo.lock

+66-66
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

axum-core/CHANGELOG.md

+18-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
# 0.5.0
1111

12+
## since rc.1
13+
14+
<details>
15+
16+
- **change:** The `Display` impl of all rejections generated by the
17+
`define_rejection!()` will now include the `Display` output of the
18+
inner error too. This matches the `body_text()` fn output now. ([#3118])
19+
20+
</details>
21+
22+
## full changelog
23+
24+
- **breaking:** Replace `#[async_trait]` with [return-position `impl Trait` in traits][RPITIT] ([#2308])
25+
- **breaking:** `Option<T>` as an extractor now requires `T` to implement the
26+
new trait `OptionalFromRequest` (if used as the last extractor) or
27+
`OptionalFromRequestParts` (other extractors) ([#2475])
28+
- **change:** Update minimum rust version to 1.75 ([#2943])
1229
- **change:** The `Display` impl of all rejections generated by the
1330
`define_rejection!()` will now include the `Display` output of the
1431
inner error too. This matches the `body_text()` fn output now. ([#3118])
@@ -17,7 +34,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1734

1835
## rc.1
1936

20-
- **breaking:**: `Option<T>` as an extractor now requires `T` to implement the
37+
- **breaking:** `Option<T>` as an extractor now requires `T` to implement the
2138
new trait `OptionalFromRequest` (if used as the last extractor) or
2239
`OptionalFromRequestParts` (other extractors) ([#2475])
2340

axum-core/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ license = "MIT"
99
name = "axum-core"
1010
readme = "README.md"
1111
repository = "https://github.com/tokio-rs/axum"
12-
version = "0.5.0-rc.1" # remember to bump the version that axum and axum-extra depend on
12+
version = "0.5.0" # remember to bump the version that axum and axum-extra depend on
1313

1414
[features]
1515
tracing = ["dep:tracing"]

axum-extra/CHANGELOG.md

+24-2
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,35 @@ and this project adheres to [Semantic Versioning].
77

88
# Unreleased
99

10+
# 0.10.0
11+
12+
## since rc.1
13+
14+
<details>
15+
1016
- **breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088])
1117
- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])
1218

13-
[#3081]: https://github.com/tokio-rs/axum/pull/3081
1419
[#3088]: https://github.com/tokio-rs/axum/pull/3088
1520

16-
# 0.10.0
21+
</details>
22+
23+
## full changelog
24+
25+
- **breaking:** Update to prost 0.13. Used for the `Protobuf` extractor ([#2829])
26+
- **changed:** Update minimum rust version to 1.75 ([#2943])
27+
- **changed:** Deprecated `OptionalPath<T>` ([#2475])
28+
- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])
29+
- **changed:** The `multipart` feature is no longer on by default ([#3058])
30+
- **fixed:** `Host` extractor includes port number when parsing authority ([#2242])
31+
- **added:** Add `RouterExt::typed_connect` ([#2961])
32+
- **added:** Add `json!` for easy construction of JSON responses ([#2962])
33+
- **added:** Add `InternalServerError` response for logging an internal error
34+
and returning HTTP 500 in a convenient way. ([#3010])
35+
- **added:** Add `FileStream` for easy construction of file stream responses ([#3047])
36+
- **added:** Add `Scheme` extractor ([#2507])
37+
38+
[#3081]: https://github.com/tokio-rs/axum/pull/3081
1739

1840
## rc.1
1941

axum-extra/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ license = "MIT"
99
name = "axum-extra"
1010
readme = "README.md"
1111
repository = "https://github.com/tokio-rs/axum"
12-
version = "0.10.0-rc.1"
12+
version = "0.10.0"
1313

1414
[features]
1515
default = ["tracing"]
@@ -42,8 +42,8 @@ typed-header = ["dep:headers"]
4242
typed-routing = ["dep:axum-macros", "dep:percent-encoding", "dep:serde_html_form", "dep:form_urlencoded"]
4343

4444
[dependencies]
45-
axum = { path = "../axum", version = "0.8.0-rc.1", default-features = false, features = ["original-uri"] }
46-
axum-core = { path = "../axum-core", version = "0.5.0-rc.1" }
45+
axum = { path = "../axum", version = "0.8.0", default-features = false, features = ["original-uri"] }
46+
axum-core = { path = "../axum-core", version = "0.5.0" }
4747
bytes = "1.1.0"
4848
futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
4949
http = "1.0.0"
@@ -58,7 +58,7 @@ tower-service = "0.3"
5858

5959
# optional dependencies
6060
async-stream = { version = "0.3", optional = true }
61-
axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true }
61+
axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true }
6262
cookie = { package = "cookie", version = "0.18.0", features = ["percent-encode"], optional = true }
6363
fastrand = { version = "2.1.0", optional = true }
6464
form_urlencoded = { version = "1.1.0", optional = true }

axum-macros/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
# 0.5.0
99

10+
*No changes since alpha.1*
11+
12+
## full changelog
13+
14+
- **breaking:** Update code generation for axum-core 0.5.0
15+
- **change:** Update minimum rust version to 1.75 ([#2943])
16+
1017
## alpha.1
1118

1219
- **breaking:** Update code generation for axum-core 0.5.0-alpha.1

axum-macros/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ license = "MIT"
99
name = "axum-macros"
1010
readme = "README.md"
1111
repository = "https://github.com/tokio-rs/axum"
12-
version = "0.5.0-rc.1" # remember to also bump the version that axum and axum-extra depends on
12+
version = "0.5.0" # remember to also bump the version that axum and axum-extra depends on
1313

1414
[features]
1515
default = []

axum/CHANGELOG.md

+48-5
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
# Unreleased
99

10+
# 0.8.0
11+
12+
## since rc.1
13+
14+
<details>
15+
1016
- **breaking:** `axum::extract::ws::Message` now uses `Bytes` in place of `Vec<u8>`,
1117
and a new `Utf8Bytes` type in place of `String`, for its variants ([#3078])
1218
- **breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088])
1319
- **changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078])
1420
- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])
1521

16-
[#3078]: https://github.com/tokio-rs/axum/pull/3078
17-
[#3081]: https://github.com/tokio-rs/axum/pull/3081
1822
[#3088]: https://github.com/tokio-rs/axum/pull/3088
1923

20-
# 0.8.0
24+
</details>
25+
26+
## full changelog
27+
28+
*Note: there are further relevant changes in [axum-core's changelog][core-changelog]*
29+
30+
- **breaking:** Upgrade matchit to 0.8, changing the path parameter syntax from `/:single` and `/*many`
31+
to `/{single}` and `/{*many}`; the old syntax produces a panic to avoid silent change in behavior ([#2645])
32+
- **breaking:** Require `Sync` for all handlers and services added to `Router`
33+
and `MethodRouter` ([#2473])
34+
- **breaking:** The tuple and tuple_struct `Path` extractor deserializers now check that the number of parameters matches the tuple length exactly ([#2931])
35+
- **breaking:** Move `Host` extractor to `axum-extra` ([#2956])
36+
- **breaking:** Remove `WebSocket::close`.
37+
Users should explicitly send close messages themselves. ([#2974])
38+
- **breaking:** Make `serve` generic over the listener and IO types ([#2941])
39+
- **breaking:** Remove `Serve::tcp_nodelay` and `WithGracefulShutdown::tcp_nodelay`.
40+
See `serve::ListenerExt` for an API that let you set arbitrary TCP stream properties. ([#2941])
41+
- **breaking:** `Option<Path<T>>` no longer swallows all error conditions,
42+
instead rejecting the request in many cases; see its documentation for details ([#2475])
43+
- **breaking:** `axum::extract::ws::Message` now uses `Bytes` in place of `Vec<u8>`,
44+
and a new `Utf8Bytes` type in place of `String`, for its variants ([#3078])
45+
- **fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992])
46+
- **fixed:** Don't panic when array type is used for path segment ([#3039])
47+
- **fixed:** Avoid setting `content-length` before middleware.
48+
This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897])
49+
- **change:** Update minimum rust version to 1.75 ([#2943])
50+
- **changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078])
51+
- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081])
52+
- **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])
53+
- **added:** Add `NoContent` as a self-described shortcut for `StatusCode::NO_CONTENT` ([#2978])
54+
- **added:** Add support for WebSockets over HTTP/2.
55+
They can be enabled by changing `get(ws_endpoint)` handlers to `any(ws_endpoint)` ([#2894])
56+
- **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]`
57+
and `MethodRouter::connect[_service]` ([#2961])
58+
- **added:** Extend `FailedToDeserializePathParams::kind` enum with (`ErrorKind::DeserializeError`)
59+
This new variant captures both `key`, `value`, and `message` from named path parameters parse errors,
60+
instead of only deserialization error message in `ErrorKind::Message`. ([#2720])
61+
62+
[#3078]: https://github.com/tokio-rs/axum/pull/3078
63+
[#3081]: https://github.com/tokio-rs/axum/pull/3081
2164

2265
## rc.1
2366

@@ -888,9 +931,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
888931
Router::new().route(...).with_state(state);
889932
```
890933

891-
- **breaking:**: `Router::inherit_state` has been removed. Use
934+
- **breaking:** `Router::inherit_state` has been removed. Use
892935
`Router::with_state` instead ([#1532])
893-
- **breaking:**: `Router::nest` and `Router::merge` now only supports nesting
936+
- **breaking:** `Router::nest` and `Router::merge` now only supports nesting
894937
routers that use the same state type as the router they're being merged into.
895938
Use `FromRef` for substates ([#1532])
896939

axum/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "axum"
3-
version = "0.8.0-rc.1" # remember to bump the version that axum-extra and axum-macros depend on
3+
version = "0.8.0" # remember to bump the version that axum-extra depends on
44
categories = ["asynchronous", "network-programming", "web-programming::http-server"]
55
description = "Web framework that focuses on ergonomics and modularity"
66
edition = "2021"
@@ -50,7 +50,7 @@ __private_docs = [
5050
__private = ["tokio", "http1", "dep:reqwest"]
5151

5252
[dependencies]
53-
axum-core = { path = "../axum-core", version = "0.5.0-rc.1" }
53+
axum-core = { path = "../axum-core", version = "0.5.0" }
5454
bytes = "1.0"
5555
futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
5656
http = "1.0.0"
@@ -70,7 +70,7 @@ tower-layer = "0.3.2"
7070
tower-service = "0.3"
7171

7272
# optional dependencies
73-
axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true }
73+
axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true }
7474
base64 = { version = "0.22.1", optional = true }
7575
form_urlencoded = { version = "1.1.0", optional = true }
7676
hyper = { version = "1.1.0", optional = true }

0 commit comments

Comments
 (0)