Commit Graph
1934 Commits
Author SHA1 Message Date
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
16313be447 docs(axum-extra): clarify cookie-key-expansion for Key::derive_from (fixes #2646) (#3769)
Co-authored-by: Cursor <[email protected]>
2026-05-17 10:41:49 +02:00
patelshudhanshu1999-makerandGitHub 6ed9210351 fix(axum-macros): use OptionalFromRequest for Option<T> fields (#3760) 2026-05-16 23:33:44 +02:00
a480d71f6d examples: fix using_serve_dir_with_assets_fallback to not expose assets at root (#3762)
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
2026-05-16 22:54:23 +02:00
tottotoandGitHub 7a37cdd00a examples: Update to diesel-async 0.9 (#3759) 2026-05-15 16:14:10 +02:00
David PedersenandGitHub 5bc0046084 chore: fix typos (#3758) 2026-05-15 12:32:46 +00:00
David PedersenandGitHub c8276951b0 feat: Add RawPathParams::from_request_extensions (#3757) 2026-05-15 12:46:49 +02:00
Lorenz LeutgebandGitHub c2612e2839 feat: Introduce Bodies of Unknown Size 2026-05-15 10:13:47 +02:00
David Pedersen c853e44ffc chore: use a more recent nightly for axum-macros tests 2026-05-05 15:16:24 +02:00
Yann SimonandGitHub 9b203a8912 integrate release-plz (#3739) 2026-05-05 13:16:39 +02:00
David PedersenandGitHub 986abe8df6 refactor: remove duplication between IntoResponse and IntoResponseParts for Redirect (#3743) 2026-05-02 19:19:13 +02:00
shonya3andGitHub 5f679ce0fb chore: Remove ECOSYSTEM.md mentions from README.md (#3744) 2026-05-02 18:41:49 +02:00
Dihan NahdiandGitHub b0123f7051 feat: impl IntoResponseParts for Redirect (#3721) 2026-05-02 17:46:22 +02:00
Dihan NahdiandGitHub bff1764b70 test: add serve module integration tests (#3724) 2026-05-02 15:34:42 +00:00
David PedersenandGitHub 9f4d52e310 remove ECOSYSTEM.md (#3737) 2026-04-27 15:09:02 +00:00
Julián Montes de OcaandGitHub 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 NahdiandGitHub 309d1bd953 feat: add #[diagnostic::on_unimplemented] to IntoResponse and IntoResponseParts (#3723) 2026-04-15 13:06:40 +02:00
Dihan NahdiandGitHub 7be02d7754 fix: add tracing calls to tracing-aka-logging example closures (#3722) 2026-04-15 11:34:16 +02:00
Gábor SzabóandGitHub 7dcc0db31e chore: inline links in the ECOSYSTEM.md (#3729) 2026-04-14 11:51:56 +02:00
Gábor SzabóandGitHub 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óandGitHub 080684c411 chore: remove axum_guard_logic from ECOSYSTEM.md (#3728) 2026-04-14 09:47:36 +02:00
Dmitry MarakasovandGitHub 6fcf0a25b6 axum: Add missing PR link to changelog (#3635) (#3720) 2026-04-11 04:30:54 +09:00
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óandGitHub 67ce49aa52 chore: link to service does not work any more (#3705) 2026-04-10 13:09:38 +02:00
Gábor SzabóandGitHub d71fd3d464 chore: update link to rgit, add gitore (#3706) 2026-04-10 13:08:57 +02:00
Gábor SzabóandGitHub 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 SimonandAlice Ryhl e8a39ad416 axum-macros 0.5.1 2026-04-03 08:49:48 +02:00
Yann SimonandAlice Ryhl 6e9a249a4f axum-extra 0.12.6 2026-04-03 08:49:48 +02:00
Yann SimonandAlice Ryhl 0ec9041a1b axum 0.8.9 2026-04-03 08:49:48 +02:00
Yann SimonandAlice Ryhl c3fcebb38f axum-core 0.5.6 2026-04-03 08:49:48 +02:00
Yann SimonandAlice Ryhl a8790fc29b update release notes 2026-04-03 08:49:48 +02:00
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
tottotoandAlice Ryhl 9fc59efc1f Update to tokio-tungstenite 0.29 (#3689) 2026-04-03 08:49:48 +02:00
Tomaz CanabravaandAlice Ryhl fc7e86c38d Improve typed path by disallowing deprecated variable definitions (#3618) 2026-04-03 08:49:48 +02:00
Andrea BozzoandAlice Ryhl ec4f5bbf9e fix: Return specific error message when multipart body limit is exceeded (#3611) 2026-04-03 08:49:48 +02:00
Yann SimonandAlice Ryhl 7e7a1c96f0 Address tower-http deprecated warning 2026-04-03 08:49:48 +02:00
tottotoandAlice Ryhl 0a24ff6b0a Address tower-http deprecated warning (#3672) 2026-04-03 08:49:48 +02:00
MathieuandAlice Ryhl 4fa5d80ab7 fix(axum-extra): escape filename in Content-Disposition header (#3664) 2026-04-03 08:49:48 +02:00
Alejandro GonzálezandAlice Ryhl 880cc38174 fix: silence clippy::implicit_clone in TypedPath macro expansions (#3663) 2026-04-03 08:49:48 +02:00
Sindri Pétur IngimundarsonandAlice Ryhl 27f4015986 fix: Set connect endpoint on correct field in MethodRouter (#3656) 2026-04-03 08:49:48 +02:00
3moredaysandAlice Ryhl 6fd77f82ca fix: TypedPath conflicts with OptionalFromRequestParts (#3645) 2026-04-03 08:49:48 +02:00
CanmiandAlice Ryhl 39a302e874 fix: empty_enum renamed to empty_enums (#3642) 2026-04-03 08:49:48 +02:00
Antonio SouzaandAlice Ryhl 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 PlatteandAlice Ryhl 39b9f727d7 Rewrite sec-websocket-protocol handling (#3620) 2026-04-03 08:49:48 +02:00
Lethe LeeandAlice Ryhl 8019ae0786 Add customizable WebSocket subprotocol selection (#3597) 2026-04-03 08:49:48 +02:00