Commit Graph
852 Commits
Author SHA1 Message Date
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
吴杨帆andCursor 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 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
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
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
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 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
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 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