David Pedersen
c853e44ffc
chore: use a more recent nightly for axum-macros tests
2026-05-05 15:16:24 +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
David Pedersen
9f4d52e310
remove ECOSYSTEM.md ( #3737 )
2026-04-27 15:09:02 +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
Dihan Nahdi
309d1bd953
feat: add #[diagnostic::on_unimplemented] to IntoResponse and IntoResponseParts ( #3723 )
2026-04-15 13:06:40 +02:00
Dihan Nahdi
7be02d7754
fix: add tracing calls to tracing-aka-logging example closures ( #3722 )
2026-04-15 11:34:16 +02:00
Gábor Szabó
7dcc0db31e
chore: inline links in the ECOSYSTEM.md ( #3729 )
2026-04-14 11:51:56 +02:00
Gábor Szabó
99205dbb10
chore: remove axum-kit from ECOSYSTEM as the repository does not exists (any more) ( #3727 )
2026-04-14 09:48:04 +02:00
Gábor Szabó
080684c411
chore: remove axum_guard_logic from ECOSYSTEM.md ( #3728 )
2026-04-14 09:47:36 +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
Gábor Szabó
67ce49aa52
chore: link to service does not work any more ( #3705 )
2026-04-10 13:09:38 +02:00
Gábor Szabó
d71fd3d464
chore: update link to rgit, add gitore ( #3706 )
2026-04-10 13:08:57 +02:00
Gábor Szabó
0c4db046b2
chore: let's use only https links in the ECOSYSTEM.md ( #3708 )
2026-04-10 13:07:49 +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
c59208c86f
revert axum-core changelog changes
axum-macros-v0.5.1
axum-v0.8.9
axum-extra-v0.12.6
2026-04-06 18:57:37 +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
6e9a249a4f
axum-extra 0.12.6
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
Tomaz Canabrava
fc7e86c38d
Improve typed path by disallowing deprecated variable definitions ( #3618 )
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
Yann Simon
7e7a1c96f0
Address tower-http deprecated warning
2026-04-03 08:49:48 +02:00
tottoto
0a24ff6b0a
Address tower-http deprecated warning ( #3672 )
2026-04-03 08:49:48 +02:00
Mathieu
4fa5d80ab7
fix(axum-extra): escape filename in Content-Disposition header ( #3664 )
2026-04-03 08:49:48 +02:00
Alejandro González
880cc38174
fix: silence clippy::implicit_clone in TypedPath macro expansions ( #3663 )
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
3moredays
6fd77f82ca
fix: TypedPath conflicts with OptionalFromRequestParts ( #3645 )
2026-04-03 08:49:48 +02:00
Canmi
39a302e874
fix: empty_enum renamed to empty_enums ( #3642 )
2026-04-03 08:49:48 +02:00
Antonio Souza
2773966059
Fix InternalServerError docs to match current behavior ( #3640 )
...
Signed-off-by: Antonio Souza <[email protected] >
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
Consoli
2587f22a05
docs: Document that vpath and json macros are feature-gated ( #3615 )
2026-04-03 08:49:48 +02:00
Arthur
4412164288
docs: add rovo ( #3701 )
2026-03-30 15:04:17 +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
Yann Simon
8144052e74
fix security advisories in axum v0.8 ( #3698 )
2026-03-24 18:28:17 +01:00
Yann Simon
d456816f49
fix formatting ( #3685 )
2026-03-24 18:05:03 +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
a3446d68bc
examples: Update to diesel-async 0.8 ( #3694 )
2026-03-23 10:01:27 +01:00