Commit Graph
35 Commits
Author SHA1 Message Date
d5de3bc7e3 Improve compile errors for unimplemented traits (#1436)
* Improve `debug_handler` to use the correct span for specific bounds

This results in better localised error messages, as they now point
directly to the corresponding argument instead of to the macro itself.

* Improve some error messages behind a `nightly-error-messages` feature
flag

This uses the nightly only `rustc_on_unimplemented` attribute to improve
some error messages when users try to use invalid handler functions.
This should be seen as prove of concept, not as full solution for all
potential error cases.

The underlying feature is currently marked as permanently unstable, but
I'm working on getting this specific attribute (or an attribute with
different name, similar functionality) ready to work on a stable compiler.

* Apply suggestions from code review

Co-authored-by: Jonas Platte <[email protected]>

* Enable the `nightly-error-messages` feature unconditionally for nightly compilers

* Use a nightly compiler to run the axum-marcos compile fail tests

* update to newer nightly

* Run axum-macros tests on nightly

* tweak compile error hints a bit

* more tweaks

* update test

Co-authored-by: Jonas Platte <[email protected]>
Co-authored-by: David Pedersen <[email protected]>
2022-11-19 12:45:03 +01:00
31638a2b22 Add tokio feature & make tokio optional for WASM support (#1382)
* add server feature and make tokio and hyper/server and tcp optional

* address review comments

* don't mention any specific runtimes in the example

* sort deps

* add `tokio` feature when adding `ws`

* don't always pull in tower feature that pulls in tokio io stuff

* remove usage of `tokio_cr`

* changelog

* depend on tokio version that supports wasm

* don't make it sound like tokio doesn't support wasm

* call out new default feature

Co-authored-by: Fisher Darling <[email protected]>
Co-authored-by: David Pedersen <[email protected]>
2022-09-25 15:10:33 +00:00
Jonas PlatteandGitHub 7cbb7cf135 Use new Cargo features to avoid implicit features for optional dependencies (#1239)
* Fix changelog entry for MSRV change in axum-extra 0.3.5

* Bump MSRV to 1.60 for axum, axum-extra, axum-macros

* Use new Cargo features to avoid implicit features for optional dependencies
2022-08-09 18:43:02 +02:00
d9ef24c5ff Replace async-graphql with link to async-graphql's own examples (#1234)
* Replace async-graphql with link to async-graphql's own examples

* exclude async-graphql directory

* does this fix it?

* apparently this needs to be sorted as well

* Update .github/workflows/CI.yml

Co-authored-by: Jonas Platte <[email protected]>

Co-authored-by: Jonas Platte <[email protected]>
2022-08-09 14:56:50 +00:00
Max CountrymanandGitHub 95c6621db9 Improve workspace caching on CI (#1229)
* improve workspace caching

This improves workspace caching performance by using the workspace parameter of rust-cache@v2.

* apply the same technique here as well
2022-08-09 15:18:10 +02:00
Jonas PlatteandGitHub f0f60681ef Fix intra-doc links on docs.rs (#1205)
* Use version 2 of Cargo's feature resolver

* Increase minimum version of tungstenite

Tungstenite 0.17.1 has a higher MSRV, and there should be no reason to
use it over 0.17.2.

* Clean up and fix MSRV CI job

* Fix some intra-doc links not resolving correctly on docs.rs

* Bump minimum version of tower

… to avoid dependencies with a broken minimum-versions chain.
2022-07-28 19:14:31 +02:00
David Pedersen 3bcc8fb07d fix typo in CI.yml 2022-07-26 14:03:35 +02:00
David PedersenandGitHub f6b1d35c51 Use minimal dependency versions for MSRV tests on CI (#1109) 2022-06-27 20:44:20 +02:00
David PedersenandGitHub 93251fa203 Bump MSRV to 1.56 and update to the 2021 edition (#1098) 2022-06-17 20:11:35 +02:00
David PedersenandGitHub 968ee44631 Sort dependencies in Cargo.tomls (#1076)
* sort dependencies

* check sorted deps on CI

* this should fail

* does caching matter?

* fix sorting
2022-06-10 08:59:17 +02:00
David PedersenandGitHub 1fe4558362 Move examples to separate workspace (#978)
* Move examples to separate workspace

* update commands to run examples

* remove debug
2022-04-29 18:53:41 +02:00
David PedersenandGitHub debc3f5be9 Don't run nightly on CI (#870)
* Exclude sqlx example

Getting an ICE
https://github.com/tokio-rs/axum/runs/5602144413?check_suite_focus=true.
Will look into that later.

* actually it was nightly's fault

* and don't test things on nightly
2022-03-18 16:28:23 +01:00
Jonas PlatteandGitHub b6862ff63d ci: Set CARGO_TERM_COLOR = always to get colored logs (#831) 2022-03-05 12:13:53 +01:00
David PedersenandGitHub 15914c4f15 Remove axum-debug code (#740) 2022-01-31 22:46:44 +01:00
David PedersenandGitHub 5698fb8be9 Add metrics example (#671) 2021-12-28 15:58:48 +01:00
Kai JewsonandGitHub 9ed18d92cf Use AtomicU32 in RouteId (#616) 2021-12-12 14:19:30 +00:00
David PedersenandGitHub a16ea65031 Add axum-extra crate (#536)
* Add `axum-extra` crate

Empty for now but now we have a place to put stuff.

I'll make a PR for moving over https://github.com/davidpdrsn/axum-resource.

* remove `authors` field from `Cargo.toml`s
2021-11-17 20:00:32 +00:00
David PedersenandGitHub 9a410371a6 Move axum-handle-error-extract into axum (#534)
* Move `axum-handle-error-extract` into axum

With 0.4 underway we can now nuke `axum-handle-error-extract` and move
its code directly into axum.

So this replaces the old `HandleErrorLayer` with one that supports async
functions and extractors.

* changelog

* fix CI
2021-11-17 19:09:58 +00:00
David PedersenandGitHub c7b8813c47 Add trybuild tests for axum-debug (#501)
The things are also covered by the doc tests but this also gives us
assertions on the errors produced, which is the whole point of this
crate :)
2021-11-11 20:26:08 +00:00
David PedersenandGitHub 5da3f34b3e Clean up axum-debug crate (#498)
* Clean up axum-debug crate

Mostly just brings the crate more in line with the rest of the crates in
the workspace.

I've also removed the axum-debug-macros crate since axum-debug only
contained one re-export from axum-debug-macros. So we didn't need two
crates. Can always bring the "backend" crate back if we need things in
axum-debug that aren't proc-macros.

* Just testing: This should make CI fail

* Misc CI clean up

* fix intentional breakage

* fix changelog

* Remove rustfmt config for now as it gives warnings on stable

* Fix paths
2021-11-11 17:33:33 +01:00
Jonas PlatteandGitHub 9c77ee0295 Use nightly clippy & rustfmt for more style checks (#487) 2021-11-09 11:53:57 +00:00
David PedersenandGitHub ba4d8a2357 Move axum crate into workspace subfolder (#458)
* Move axum crate into workspace subfolder

Over time I imagine we're gonna have other crates in this repo that
provide utilities or integrations for axum. This prepares for that by
moving the main axum crate into its own folder.

The README situation is a bit annoying because we want `./README.md`
for viewing the repo on github but `axum/README.md` for crates.io. For
now I've just copy/pasted it and added CI step to make sure they're
identical.

* update changelog link

* Add licenses to all examples

* is this how you install `diff`?

* or maybe this is how?

* fix readme links

* like this?

* fix cargo-deny step

* Try making root readme a symlink

* remove compare readme step

not needed since readme in repo root is now a symlink

* Revert "Add licenses to all examples"

This reverts commit ab321b7fb9.
2021-11-03 12:38:48 +01:00
David PedersenandGitHub 0f1f28062d Reorganize tests (#456)
* Reorganize tests

This breaks up the large `crate::tests` module by moving some of the
tests into a place that makes more sense. For example tests of JSON
serialization are moved to the `crate::json` module. The remaining routing
tests have been moved to `crate::routing::tests`.

I generally prefer having tests close to the code they're testing. Makes
it easier to see how/if something is tested.

* Try pinning to older version of async-graphql

* Revert "Try pinning to older version of async-graphql"

This reverts commit 2e2cae7d12f5e433a16d6607497d587863f04384.

* don't test examples on 1.54 on CI

* move ci steps around a bit
2021-11-03 10:22:31 +01:00
David PedersenandGitHub 857ecd7314 Break root module docs into separate files (#432)
For 0.3 I'm thinking about some changes I wanna make to the docs. I
don't like how information is currently spread over so many places.
Still thinking about how I wanna re-organize it.

However I do think it makes sense to break the root module docs into
separate files that get included with `#![doc = include_str!("file")]`.
Makes working on a single section easier and more focused. It looks the
same for the user reading the docs.

This means axum's MSRV is now 1.54 but since thats two releases ago I'm
fine with that.
2021-10-31 20:37:56 +01:00
David PedersenandGitHub 24eb661fe4 Fix CI caching (#395) 2021-10-19 22:25:06 +02:00
David PedersenandGitHub 0f48f33e9d Make sure doc tests run on CI (#206)
* Make sure doc tests run on CI

* Run doc tests in separate step

Don't need to run them for stable, beta, nightly
2021-08-19 09:34:48 +02:00
David PedersenandGitHub b1e7a6ae7b Enable CI caching (#149) 2021-08-07 17:09:30 +02:00
David Pedersen 5922c4fa50 Run CI for main
...and not `master`
2021-08-07 11:11:29 +02:00
Jonas PlatteandGitHub 6a042a9b3a Cleanup CI (#141)
* Feature-gate test that depends on non-default features

Makes `cargo check` work without extra flags.

* Don't set doc(html_root_url)

It is no longer recommended:
https://github.com/rust-lang/api-guidelines/pull/230

* Remove documentation URL from Cargo.toml

crates.io will link to the right version on docs.rs automatically.

* Ensure toolchains installed by actions-rs/toolchain are actually used

* Fix missing rustup component in check job

* Raise MSRV to 1.51

Older versions weren't actually working before.

* Only run clippy & rustfmt on stable toolchain

MSRV is checked in test-versions.

* Allow cargo doc to succeed without headers and multipart features

CI will still ensure that intra-doc links that rely on these are not broken.
2021-08-07 11:06:42 +02:00
David Pedersen ba9c03d146 Update links 2021-07-22 19:39:08 +02:00
David PedersenandGitHub 5a5710d290 Rename to axum (#28) 2021-07-09 21:36:14 +02:00
David PedersenandGitHub 44577a0108 Add testing example (#24) 2021-06-19 13:44:21 +02:00
David PedersenandGitHub 1002685a20 Rename to awebframework (#13) 2021-06-13 11:22:02 +02:00
David PedersenandGitHub b3bc4e024c Add RoutingDsl::{serve, into_make_service} (#8) 2021-06-12 21:44:40 +02:00
David PedersenandGitHub 002e3f92b3 Misc repo setup (#7) 2021-06-12 20:18:21 +02:00