diff --git a/Cargo.lock b/Cargo.lock index 876912df97..b5d929afd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -160,7 +160,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -253,7 +253,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -264,7 +264,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -310,22 +310,21 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8478a5c29ead3f3be14aff8a202ad965cf7da6856860041bfca271becf8ba48b" +checksum = "923ded50f602b3007e5e63e3f094c479d9c8a9b42d7f4034e4afe456aa48bfd2" dependencies = [ "bindgen", "cc", "cmake", "dunce", "fs_extra", - "libc", "paste", ] [[package]] name = "axum" -version = "0.8.0-rc.1" +version = "0.8.0" dependencies = [ "anyhow", "axum-core", @@ -349,7 +348,7 @@ dependencies = [ "pin-project-lite", "quickcheck", "quickcheck_macros", - "reqwest 0.12.9", + "reqwest 0.12.12", "rustversion", "serde", "serde_json", @@ -372,7 +371,7 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.0-rc.1" +version = "0.5.0" dependencies = [ "axum", "axum-extra", @@ -396,7 +395,7 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.10.0-rc.1" +version = "0.10.0" dependencies = [ "async-stream", "axum", @@ -417,7 +416,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "prost", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "serde_html_form", "serde_json", @@ -435,7 +434,7 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.5.0-rc.1" +version = "0.5.0" dependencies = [ "axum", "axum-extra", @@ -444,7 +443,7 @@ dependencies = [ "rustversion", "serde", "serde_json", - "syn 2.0.91", + "syn 2.0.93", "tokio", "trybuild", ] @@ -617,7 +616,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.91", + "syn 2.0.93", "which", ] @@ -754,9 +753,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.5" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "jobserver", "libc", @@ -1028,7 +1027,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1039,7 +1038,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1117,7 +1116,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1130,7 +1129,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1171,7 +1170,7 @@ dependencies = [ "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1191,7 +1190,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" dependencies = [ - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1223,7 +1222,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1243,7 +1242,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1279,7 +1278,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -1652,7 +1651,7 @@ dependencies = [ "axum-extra", "http 1.2.0", "oauth2", - "reqwest 0.12.9", + "reqwest 0.12.12", "serde", "tokio", "tracing", @@ -1732,7 +1731,7 @@ name = "example-reqwest-response" version = "0.1.0" dependencies = [ "axum", - "reqwest 0.12.9", + "reqwest 0.12.12", "tokio", "tokio-stream", "tower-http 0.6.2", @@ -1800,7 +1799,7 @@ dependencies = [ "eventsource-stream", "futures", "headers", - "reqwest 0.12.9", + "reqwest 0.12.12", "reqwest-eventsource", "tokio", "tokio-stream", @@ -2160,7 +2159,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -2240,9 +2239,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "h2" @@ -2791,7 +2790,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -3254,7 +3253,7 @@ checksum = "8b07bfd601af78e39384707a8e80041946c98260e3e0190e294ee7435823e6bf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -3448,7 +3447,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -3579,7 +3578,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -3699,7 +3698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -3755,7 +3754,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -4027,9 +4026,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", "bytes", @@ -4066,6 +4065,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls 0.26.1", "tokio-util", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -4088,7 +4088,7 @@ dependencies = [ "mime", "nom", "pin-project-lite", - "reqwest 0.12.9", + "reqwest 0.12.12", "thiserror 1.0.69", ] @@ -4266,9 +4266,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -4341,9 +4341,9 @@ checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -4359,13 +4359,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -4452,7 +4452,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -4687,7 +4687,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -4710,7 +4710,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.91", + "syn 2.0.93", "tempfile", "tokio", "url", @@ -4861,9 +4861,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.91" +version = "2.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" +checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058" dependencies = [ "proc-macro2", "quote", @@ -4893,7 +4893,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5004,7 +5004,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5015,7 +5015,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5110,7 +5110,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5375,7 +5375,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5618,7 +5618,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -5681,7 +5681,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "wasm-bindgen-shared", ] @@ -5716,7 +5716,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6024,9 +6024,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68" dependencies = [ "memchr", ] @@ -6082,7 +6082,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "synstructure", ] @@ -6104,7 +6104,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] @@ -6124,7 +6124,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", "synstructure", ] @@ -6153,7 +6153,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.93", ] [[package]] diff --git a/axum-core/CHANGELOG.md b/axum-core/CHANGELOG.md index 755941b32a..f64b00e3ce 100644 --- a/axum-core/CHANGELOG.md +++ b/axum-core/CHANGELOG.md @@ -9,6 +9,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # 0.5.0 +## since rc.1 + +
+ +- **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]) + +
+ +## full changelog + +- **breaking:** Replace `#[async_trait]` with [return-position `impl Trait` in traits][RPITIT] ([#2308]) +- **breaking:** `Option` as an extractor now requires `T` to implement the + new trait `OptionalFromRequest` (if used as the last extractor) or + `OptionalFromRequestParts` (other extractors) ([#2475]) +- **change:** Update minimum rust version to 1.75 ([#2943]) - **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]) @@ -17,7 +34,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## rc.1 -- **breaking:**: `Option` as an extractor now requires `T` to implement the +- **breaking:** `Option` as an extractor now requires `T` to implement the new trait `OptionalFromRequest` (if used as the last extractor) or `OptionalFromRequestParts` (other extractors) ([#2475]) diff --git a/axum-core/Cargo.toml b/axum-core/Cargo.toml index d67fb18c08..e287bc0e87 100644 --- a/axum-core/Cargo.toml +++ b/axum-core/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-core" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.5.0-rc.1" # remember to bump the version that axum and axum-extra depend on +version = "0.5.0" # remember to bump the version that axum and axum-extra depend on [features] tracing = ["dep:tracing"] diff --git a/axum-extra/CHANGELOG.md b/axum-extra/CHANGELOG.md index f6afbe2e8a..bda5582b7c 100644 --- a/axum-extra/CHANGELOG.md +++ b/axum-extra/CHANGELOG.md @@ -7,13 +7,35 @@ and this project adheres to [Semantic Versioning]. # Unreleased +# 0.10.0 + +## since rc.1 + +
+ - **breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088]) - **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) -[#3081]: https://github.com/tokio-rs/axum/pull/3081 [#3088]: https://github.com/tokio-rs/axum/pull/3088 -# 0.10.0 +
+ +## full changelog + +- **breaking:** Update to prost 0.13. Used for the `Protobuf` extractor ([#2829]) +- **changed:** Update minimum rust version to 1.75 ([#2943]) +- **changed:** Deprecated `OptionalPath` ([#2475]) +- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) +- **changed:** The `multipart` feature is no longer on by default ([#3058]) +- **fixed:** `Host` extractor includes port number when parsing authority ([#2242]) +- **added:** Add `RouterExt::typed_connect` ([#2961]) +- **added:** Add `json!` for easy construction of JSON responses ([#2962]) +- **added:** Add `InternalServerError` response for logging an internal error + and returning HTTP 500 in a convenient way. ([#3010]) +- **added:** Add `FileStream` for easy construction of file stream responses ([#3047]) +- **added:** Add `Scheme` extractor ([#2507]) + +[#3081]: https://github.com/tokio-rs/axum/pull/3081 ## rc.1 diff --git a/axum-extra/Cargo.toml b/axum-extra/Cargo.toml index e52a109dc1..4b29f97c68 100644 --- a/axum-extra/Cargo.toml +++ b/axum-extra/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-extra" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.10.0-rc.1" +version = "0.10.0" [features] 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"] [dependencies] -axum = { path = "../axum", version = "0.8.0-rc.1", default-features = false, features = ["original-uri"] } -axum-core = { path = "../axum-core", version = "0.5.0-rc.1" } +axum = { path = "../axum", version = "0.8.0", default-features = false, features = ["original-uri"] } +axum-core = { path = "../axum-core", version = "0.5.0" } bytes = "1.1.0" futures-util = { version = "0.3", default-features = false, features = ["alloc"] } http = "1.0.0" @@ -58,7 +58,7 @@ tower-service = "0.3" # optional dependencies async-stream = { version = "0.3", optional = true } -axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true } +axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true } cookie = { package = "cookie", version = "0.18.0", features = ["percent-encode"], optional = true } fastrand = { version = "2.1.0", optional = true } form_urlencoded = { version = "1.1.0", optional = true } diff --git a/axum-macros/CHANGELOG.md b/axum-macros/CHANGELOG.md index 11b7820f89..102121e7ff 100644 --- a/axum-macros/CHANGELOG.md +++ b/axum-macros/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # 0.5.0 +*No changes since alpha.1* + +## full changelog + +- **breaking:** Update code generation for axum-core 0.5.0 +- **change:** Update minimum rust version to 1.75 ([#2943]) + ## alpha.1 - **breaking:** Update code generation for axum-core 0.5.0-alpha.1 diff --git a/axum-macros/Cargo.toml b/axum-macros/Cargo.toml index 09ea49d3b4..676f35fd2a 100644 --- a/axum-macros/Cargo.toml +++ b/axum-macros/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-macros" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.5.0-rc.1" # remember to also bump the version that axum and axum-extra depends on +version = "0.5.0" # remember to also bump the version that axum and axum-extra depends on [features] default = [] diff --git a/axum/CHANGELOG.md b/axum/CHANGELOG.md index bb3f4a0778..5cc9649adb 100644 --- a/axum/CHANGELOG.md +++ b/axum/CHANGELOG.md @@ -7,17 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # Unreleased +# 0.8.0 + +## since rc.1 + +
+ - **breaking:** `axum::extract::ws::Message` now uses `Bytes` in place of `Vec`, and a new `Utf8Bytes` type in place of `String`, for its variants ([#3078]) - **breaking:** Remove `OptionalFromRequestParts` impl for `Query` ([#3088]) - **changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078]) - **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) -[#3078]: https://github.com/tokio-rs/axum/pull/3078 -[#3081]: https://github.com/tokio-rs/axum/pull/3081 [#3088]: https://github.com/tokio-rs/axum/pull/3088 -# 0.8.0 +
+ +## full changelog + +*Note: there are further relevant changes in [axum-core's changelog][core-changelog]* + +- **breaking:** Upgrade matchit to 0.8, changing the path parameter syntax from `/:single` and `/*many` + to `/{single}` and `/{*many}`; the old syntax produces a panic to avoid silent change in behavior ([#2645]) +- **breaking:** Require `Sync` for all handlers and services added to `Router` + and `MethodRouter` ([#2473]) +- **breaking:** The tuple and tuple_struct `Path` extractor deserializers now check that the number of parameters matches the tuple length exactly ([#2931]) +- **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>` no longer swallows all error conditions, + instead rejecting the request in many cases; see its documentation for details ([#2475]) +- **breaking:** `axum::extract::ws::Message` now uses `Bytes` in place of `Vec`, + and a new `Utf8Bytes` type in place of `String`, for its variants ([#3078]) +- **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:** Avoid setting `content-length` before middleware. + This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897]) +- **change:** Update minimum rust version to 1.75 ([#2943]) +- **changed:** Upgraded `tokio-tungstenite` to 0.26 ([#3078]) +- **changed:** Query/Form: Use `serde_path_to_error` to report fields that failed to parse ([#3081]) +- **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 support for WebSockets over HTTP/2. + They can be enabled by changing `get(ws_endpoint)` handlers to `any(ws_endpoint)` ([#2894]) +- **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]` + and `MethodRouter::connect[_service]` ([#2961]) +- **added:** Extend `FailedToDeserializePathParams::kind` enum with (`ErrorKind::DeserializeError`) + 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]) + +[#3078]: https://github.com/tokio-rs/axum/pull/3078 +[#3081]: https://github.com/tokio-rs/axum/pull/3081 ## rc.1 @@ -888,9 +931,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Router::new().route(...).with_state(state); ``` -- **breaking:**: `Router::inherit_state` has been removed. Use +- **breaking:** `Router::inherit_state` has been removed. Use `Router::with_state` instead ([#1532]) -- **breaking:**: `Router::nest` and `Router::merge` now only supports nesting +- **breaking:** `Router::nest` and `Router::merge` now only supports nesting routers that use the same state type as the router they're being merged into. Use `FromRef` for substates ([#1532]) diff --git a/axum/Cargo.toml b/axum/Cargo.toml index 8110f052e0..8785027f17 100644 --- a/axum/Cargo.toml +++ b/axum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axum" -version = "0.8.0-rc.1" # remember to bump the version that axum-extra and axum-macros depend on +version = "0.8.0" # remember to bump the version that axum-extra depends on categories = ["asynchronous", "network-programming", "web-programming::http-server"] description = "Web framework that focuses on ergonomics and modularity" edition = "2021" @@ -50,7 +50,7 @@ __private_docs = [ __private = ["tokio", "http1", "dep:reqwest"] [dependencies] -axum-core = { path = "../axum-core", version = "0.5.0-rc.1" } +axum-core = { path = "../axum-core", version = "0.5.0" } bytes = "1.0" futures-util = { version = "0.3", default-features = false, features = ["alloc"] } http = "1.0.0" @@ -70,7 +70,7 @@ tower-layer = "0.3.2" tower-service = "0.3" # optional dependencies -axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true } +axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true } base64 = { version = "0.22.1", optional = true } form_urlencoded = { version = "1.1.0", optional = true } hyper = { version = "1.1.0", optional = true }