Commit Graph
1926 Commits
Author SHA1 Message Date
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 MarakasovandDavid 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
kazeandYann 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 TrigauxandYann 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
kazeandYann 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