Merge branch 'v0.8.x' into yanns/v0.8.9

This commit is contained in:
Yann Simon
2026-04-07 11:40:51 +02:00
9 changed files with 42 additions and 22 deletions
Generated
+3 -3
View File
@@ -99,7 +99,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]] [[package]]
name = "axum" name = "axum"
version = "0.8.8" version = "0.8.9"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"axum-core", "axum-core",
@@ -172,7 +172,7 @@ dependencies = [
[[package]] [[package]]
name = "axum-extra" name = "axum-extra"
version = "0.12.5" version = "0.12.6"
dependencies = [ dependencies = [
"axum", "axum",
"axum-core", "axum-core",
@@ -215,7 +215,7 @@ dependencies = [
[[package]] [[package]]
name = "axum-macros" name = "axum-macros"
version = "0.5.0" version = "0.5.1"
dependencies = [ dependencies = [
"axum", "axum",
"axum-extra", "axum-extra",
+13 -6
View File
@@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning].
# Unreleased # Unreleased
- **fixed:** Escape backslashes and double quotes in `Content-Disposition` filenames
to prevent header parameter injection in `Attachment` and `FileStream` ([#3664])
- `vpath!` macro now stops the compilation if your path is using deprecated
path variables in the old `107` format, such as `:var` and `*var`. the
only allowed way now is `{var}`.
- **breaking:** Remove the deprecated `Host`, `Scheme` and `OptionalPath` - **breaking:** Remove the deprecated `Host`, `Scheme` and `OptionalPath`
extractors ([#3599]) extractors ([#3599])
- Also remove `HostRejection` which only had `FailedToResolveHost` - Also remove `HostRejection` which only had `FailedToResolveHost`
@@ -28,10 +23,22 @@ and this project adheres to [Semantic Versioning].
.route_with_tsr("/path", post(/* handler */)) .route_with_tsr("/path", post(/* handler */))
``` ```
[#3664]: https://github.com/tokio-rs/axum/pull/3664
[#3599]: https://github.com/tokio-rs/axum/pull/3599 [#3599]: https://github.com/tokio-rs/axum/pull/3599
[#3586]: https://github.com/tokio-rs/axum/pull/3586 [#3586]: https://github.com/tokio-rs/axum/pull/3586
# 0.12.6
- **fixed:** Escape backslashes and double quotes in `Content-Disposition` filenames
to prevent header parameter injection in `Attachment` and `FileStream` ([#3664])
- `vpath!` macro now stops the compilation if your path is using deprecated
path variables in the old `107` format, such as `:var` and `*var`. the
only allowed way now is `{var}`. ([#3618])
- **fixed:** Return specific error message when multipart body limit is exceeded ([#3611])
[#3664]: https://github.com/tokio-rs/axum/pull/3664
[#3618]: https://github.com/tokio-rs/axum/pull/3618
[#3611]: https://github.com/tokio-rs/axum/pull/3611
# 0.12.5 # 0.12.5
- **fixed:** `JsonLines` now correctly respects the default body limit ([#3591]) - **fixed:** `JsonLines` now correctly respects the default body limit ([#3591])
+3 -3
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.12.5" version = "0.12.6"
[package.metadata.docs.rs] [package.metadata.docs.rs]
all-features = true all-features = true
@@ -111,8 +111,8 @@ tower-layer = "0.3"
tower-service = "0.3" tower-service = "0.3"
# optional dependencies # optional dependencies
axum = { path = "../axum", version = "0.8.8", default-features = false, optional = true } axum = { path = "../axum", version = "0.8.9", default-features = false, optional = true }
axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true } axum-macros = { path = "../axum-macros", version = "0.5.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 }
+5 -1
View File
@@ -9,10 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **breaking:** `#[from_request(via(Extractor))]` now uses the extractor's - **breaking:** `#[from_request(via(Extractor))]` now uses the extractor's
rejection type instead of `axum::response::Response` ([#3261]) rejection type instead of `axum::response::Response` ([#3261])
[#3261]: https://github.com/tokio-rs/axum/pull/3261
# 0.5.1
- **fixed:** Fix compilation error when deriving `TypedPath` with - **fixed:** Fix compilation error when deriving `TypedPath` with
`OptionalFromRequestParts` being in scope ([#3645]) `OptionalFromRequestParts` being in scope ([#3645])
[#3261]: https://github.com/tokio-rs/axum/pull/3261
[#3645]: https://github.com/tokio-rs/axum/pull/3645 [#3645]: https://github.com/tokio-rs/axum/pull/3645
# 0.5.0 # 0.5.0
+1 -1
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" # remember to also bump the version that axum and axum-extra depends on version = "0.5.1" # remember to also bump the version that axum and axum-extra depends on
[package.metadata.docs.rs] [package.metadata.docs.rs]
all-features = true all-features = true
+11 -3
View File
@@ -16,11 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
(because it was already never terminating if that method wasn't used) ([#3601]) (because it was already never terminating if that method wasn't used) ([#3601])
- **added:** New `ListenerExt::limit_connections` allows limiting concurrent `axum::serve` connections ([#3489]) - **added:** New `ListenerExt::limit_connections` allows limiting concurrent `axum::serve` connections ([#3489])
- **added:** `MethodRouter::method_filter` ([#3586]) - **added:** `MethodRouter::method_filter` ([#3586])
- **added:** `WebSocketUpgrade::{requested_protocols, set_selected_protocol}` for more
flexible subprotocol selection ([#3597])
- **changed:** `serve` has an additional generic argument and can now work with any response body - **changed:** `serve` has an additional generic argument and can now work with any response body
type, not just `axum::body::Body` ([#3205]) type, not just `axum::body::Body` ([#3205])
- **changed:** Update minimum rust version to 1.80 ([#3620])
- **changed:** `Redirect` constructors now accept any `impl Into<String>` ([#3635]) - **changed:** `Redirect` constructors now accept any `impl Into<String>` ([#3635])
[#3158]: https://github.com/tokio-rs/axum/pull/3158 [#3158]: https://github.com/tokio-rs/axum/pull/3158
@@ -30,8 +27,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#3601]: https://github.com/tokio-rs/axum/pull/3601 [#3601]: https://github.com/tokio-rs/axum/pull/3601
[#3489]: https://github.com/tokio-rs/axum/pull/3489 [#3489]: https://github.com/tokio-rs/axum/pull/3489
[#3586]: https://github.com/tokio-rs/axum/pull/3586 [#3586]: https://github.com/tokio-rs/axum/pull/3586
# 0.8.9
- **added:** `WebSocketUpgrade::{requested_protocols, set_selected_protocol}` for more
flexible subprotocol selection ([#3597])
- **changed:** Update minimum rust version to 1.80 ([#3620])
- **fixed:** Set connect endpoint on correct field in MethodRouter ([#3656])
- **fixed:** Return specific error message when multipart body limit is exceeded ([#3611])
[#3597]: https://github.com/tokio-rs/axum/pull/3597 [#3597]: https://github.com/tokio-rs/axum/pull/3597
[#3620]: https://github.com/tokio-rs/axum/pull/3620 [#3620]: https://github.com/tokio-rs/axum/pull/3620
[#3656]: https://github.com/tokio-rs/axum/pull/3656
[#3611]: https://github.com/tokio-rs/axum/pull/3611
# 0.8.8 # 0.8.8
+2 -2
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "axum" name = "axum"
version = "0.8.8" # remember to bump the version that axum-extra depends on version = "0.8.9" # remember to bump the version that axum-extra depends on
categories = ["asynchronous", "network-programming", "web-programming::http-server"] categories = ["asynchronous", "network-programming", "web-programming::http-server"]
description = "HTTP routing and request handling library that focuses on ergonomics and modularity" description = "HTTP routing and request handling library that focuses on ergonomics and modularity"
edition = "2021" edition = "2021"
@@ -123,7 +123,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", optional = true } axum-macros = { path = "../axum-macros", version = "0.5.1", optional = true }
base64 = { version = "0.22.1", optional = true } base64 = { version = "0.22.1", optional = true }
form_urlencoded = { version = "1.1.0", optional = true } form_urlencoded = { version = "1.1.0", optional = true }
futures-sink = { version = "0.3", optional = true } futures-sink = { version = "0.3", optional = true }
+3 -3
View File
@@ -258,7 +258,7 @@ dependencies = [
[[package]] [[package]]
name = "axum" name = "axum"
version = "0.8.8" version = "0.8.9"
dependencies = [ dependencies = [
"axum-core", "axum-core",
"axum-macros", "axum-macros",
@@ -313,7 +313,7 @@ dependencies = [
[[package]] [[package]]
name = "axum-extra" name = "axum-extra"
version = "0.12.5" version = "0.12.6"
dependencies = [ dependencies = [
"axum", "axum",
"axum-core", "axum-core",
@@ -333,7 +333,7 @@ dependencies = [
[[package]] [[package]]
name = "axum-macros" name = "axum-macros"
version = "0.5.0" version = "0.5.1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
+1
View File
@@ -114,6 +114,7 @@ async fn list_keys(State(state): State<SharedState>) -> String {
.join("\n") .join("\n")
} }
#[allow(deprecated)]
fn admin_routes() -> Router<SharedState> { fn admin_routes() -> Router<SharedState> {
async fn delete_all_keys(State(state): State<SharedState>) { async fn delete_all_keys(State(state): State<SharedState>) {
state.write().unwrap().db.clear(); state.write().unwrap().db.clear();