Tim Vilgot Mikael Fredenberg
ffe32473cc
document ws cancellation & delegation ( #3786 )
2026-06-05 09:21:16 +02:00
David Pedersen
d97edd2eb3
chore: write changelogs manually ( #3764 )
2026-05-18 10:38:29 +02:00
吴杨帆 and Cursor
c21fcae087
docs(axum): document that path must start with / in Router::route ( #3771 )
...
Co-authored-by: Cursor <[email protected] >
2026-05-17 10:51:06 +02:00
David Pedersen
5bc0046084
chore: fix typos ( #3758 )
2026-05-15 12:32:46 +00:00
David Pedersen
c8276951b0
feat: Add RawPathParams::from_request_extensions ( #3757 )
2026-05-15 12:46:49 +02:00
Lorenz Leutgeb
c2612e2839
feat: Introduce Bodies of Unknown Size
2026-05-15 10:13:47 +02:00
Yann Simon
9b203a8912
integrate release-plz ( #3739 )
2026-05-05 13:16:39 +02:00
David Pedersen
986abe8df6
refactor: remove duplication between IntoResponse and IntoResponseParts for Redirect ( #3743 )
2026-05-02 19:19:13 +02:00
shonya3
5f679ce0fb
chore: Remove ECOSYSTEM.md mentions from README.md ( #3744 )
2026-05-02 18:41:49 +02:00
Dihan Nahdi
b0123f7051
feat: impl IntoResponseParts for Redirect ( #3721 )
2026-05-02 17:46:22 +02:00
Dihan Nahdi
bff1764b70
test: add serve module integration tests ( #3724 )
2026-05-02 15:34:42 +00:00
Julián Montes de Oca
de9f13d809
Add Serve::with_executor and Executor trait for custom task spawning ( #3704 )
...
## Motivation
axum::serve hardcodes TokioExecutor for spawning connection tasks and hyper's internal HTTP/2 tasks. This is the one thing that cannot be customized by wrapping axum's API from the outside, users are forced to reimplement the entire serve loop (~150 lines) just to swap the executor.
This is needed for use cases like runtime telemetry (e.g. dial9-tokio-telemetry) where we want to wrap task spawning, so that we can capture things like wake events.
The goal of this feature is to allow hooking into the current tokio spawns (by being able to set an executor that provides them, rather than hardcoding them) to attach instrumentation. The goal is not the make serve fully runtime agnostic.
## Solution
This PR adds Serve::with_executor() and WithGracefulShutdown::with_executor() builder methods that take an Executor, and an axum::serve::Executor trait for defining the Executor interface.
The default remains a new TokioExecutor (that spawns tokio spawns just like before), so we maintain backward compatibility.
Small design note: this defines a new axum::serve::Executor trait rather than reuse of hyper::rt::Executor<Fut> directly, because the latter is generic at the trait level and I couldn't find a way to bound E to cover all the internal future types hyper needs. So this new trait uses a generic method instead, and then a HyperExecutor<E> adapter bridges to hyper.
2026-04-20 14:49:30 +02:00
Dmitry Marakasov
6fcf0a25b6
axum: Add missing PR link to changelog ( #3635 ) ( #3720 )
2026-04-11 04:30:54 +09:00
Dmitry Marakasov and David Mládek
f31dcd3c1e
Bump matchit to 0.9.2 ( #3702 )
...
The new version now supports prefix and suffix captures such as `/{file}.png`, `/avatar.{extension}`, and `/user-{id}.png`.
Co-authored-by: David Mládek <[email protected] >
2026-04-10 19:47:51 +02:00
Yann Simon
19fa67d481
Merge branch 'v0.8.x' into yanns/v0.8.9
2026-04-07 11:40:51 +02:00
Yann Simon
99068f5a4b
Revert "Fix IntoResponse for tuples overriding error response codes ( #3603 )"
...
This reverts commit 0e961504c2 .
2026-04-06 18:47:42 +02:00
Yann Simon
23d7098691
Revert "axum-core 0.5.6"
...
This reverts commit 8c6bd2dfec .
2026-04-06 18:46:13 +02:00
Yann Simon
e8a39ad416
axum-macros 0.5.1
2026-04-03 08:49:48 +02:00
Yann Simon
0ec9041a1b
axum 0.8.9
2026-04-03 08:49:48 +02:00
Yann Simon
c3fcebb38f
axum-core 0.5.6
2026-04-03 08:49:48 +02:00
Yann Simon
a8790fc29b
update release notes
2026-04-03 08:49:48 +02:00
kaze and Yann Simon
26ba7bb6f2
docs: consolidate state management docs in crate root ( #3683 )
...
Co-authored-by: Yann Simon <[email protected] >
2026-04-03 08:49:48 +02:00
tottoto
9fc59efc1f
Update to tokio-tungstenite 0.29 ( #3689 )
2026-04-03 08:49:48 +02:00
Andrea Bozzo
ec4f5bbf9e
fix: Return specific error message when multipart body limit is exceeded ( #3611 )
2026-04-03 08:49:48 +02:00
tottoto
0a24ff6b0a
Address tower-http deprecated warning ( #3672 )
2026-04-03 08:49:48 +02:00
Sindri Pétur Ingimundarson
27f4015986
fix: Set connect endpoint on correct field in MethodRouter ( #3656 )
2026-04-03 08:49:48 +02:00
417dc25280
Fix IntoResponse for tuples overriding error response codes ( #3603 )
...
Co-authored-by: David Pedersen <[email protected] >
Co-authored-by: Yann Simon <[email protected] >
2026-04-03 08:49:48 +02:00
Jonas Platte
39b9f727d7
Rewrite sec-websocket-protocol handling ( #3620 )
2026-04-03 08:49:48 +02:00
Lethe Lee
8019ae0786
Add customizable WebSocket subprotocol selection ( #3597 )
2026-04-03 08:49:48 +02:00
Jonas Platte
2b0978690c
Stop calling axum a 'framework' ( #3616 )
2026-04-03 08:49:48 +02:00
Martin Trigaux and Yann Simon
9c67c6c33a
[FIX] link to query-params-with-empty-string ( #3695 )
...
Co-authored-by: Yann Simon <[email protected] >
2026-03-24 18:37:30 +01:00
kaze and Yann Simon
7c7a03927a
docs: consolidate state management docs in crate root ( #3683 )
...
Co-authored-by: Yann Simon <[email protected] >
2026-03-24 10:13:40 +01:00
tottoto
bc2ab88afe
Update to tokio-tungstenite 0.29 ( #3689 )
2026-03-19 15:44:37 +01:00
Andrea Bozzo
22f769c7f1
fix: Return specific error message when multipart body limit is exceeded ( #3611 )
2026-02-26 10:14:20 +00:00
tottoto
3fb52b094e
Address tower-http deprecated warning ( #3672 )
2026-02-24 06:53:43 +09:00
cui
c2b0bc310e
axum: fix typo in Path extractor error ( #3661 )
2026-02-16 08:32:54 +01:00
next-n
776c4a438f
routing: Avoid unwrap in fallback path ( #3652 )
2026-02-14 09:13:34 +01:00
Sindri Pétur Ingimundarson
8a9b03cb54
fix: Set connect endpoint on correct field in MethodRouter ( #3656 )
2026-02-13 22:05:24 +01:00
Joey de Waal
7961711fc7
Accept owned locations in Redirect constructors ( #3635 )
2026-01-30 11:34:46 +00:00
576968b406
Fix IntoResponse for tuples overriding error response codes ( #3603 )
...
Co-authored-by: David Pedersen <[email protected] >
Co-authored-by: Yann Simon <[email protected] >
2026-01-18 20:20:18 +01:00
tottoto
a34d06b3e9
axum: Update to serde_json 1.0.29 ( #3632 )
2026-01-13 00:36:03 +09:00
Jonas Platte
4c09ea7d80
Rewrite sec-websocket-protocol handling ( #3620 )
2026-01-10 12:06:45 +00:00
Jonas Platte
204c5adf5f
Upgrade serde_html_form to 0.4.0 ( #3619 )
2026-01-08 01:04:59 +01:00
Lethe Lee
02f1dd1731
Add customizable WebSocket subprotocol selection ( #3597 )
2026-01-07 17:42:55 +00:00
Jonas Platte
05de165de2
Stop calling axum a 'framework' ( #3616 )
2026-01-06 11:04:40 +01:00
Jonas Platte
183ace306a
Add method filtering to route_with_tsr ( #3586 )
2026-01-04 09:46:33 +01:00
Jonas Platte
0101c2a240
Use Result for validate_nest_path ( #3606 )
2025-12-28 19:30:54 +01:00
Jonas Platte
f3a95d786a
Fix return types of serve futures ( #3601 )
2025-12-28 09:25:50 +01:00
Jonas Platte
f72c298ee8
Improve error messages with #[diagnostic::do_not_recommend] ( #3588 )
2025-12-27 10:22:51 +01:00
Jonas Platte
e710a97a5a
Release axum-core v0.5.6
2025-12-26 14:55:07 +01:00