Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I did the exact same thing with my imageboard, plainchant [1]. I had the same experience that you did with Warp: the routing model was extremely clever, but never came to feel intuitive or ergonomic to me.
[1] https://github.com/jgbyrne/plainchant
> The axum::debug_handler macro is invaluable to debug type errors (there's some with axum too), like for example, accidentally having a non-Send type slip in.
Heh, yeah. For my recent project where I explored implementing the same little app in a few different languages[0], I chose Axum for the rust version.
The whole "extractor" system was pretty magical, and when I had this exact issue (non-Send argument), the compiler error was totally useless. I did see the docs about adding this extra macro crate for error messages but it seemed like a bit of a red flag that the framework was going against the grain of the language. Still, on the whole, I did enjoy working with Axum.
[0] https://github.com/losvedir/transit-lang-cmp
1, 3, and 4 are already there, they're just a part of Hyper, not Axum/Warp/Rocket. 2 is basically the thing that Axum/Warp/Rocket provide. Hyper is kinda like net/http and Axum/Warp/Rocket are kinda like the Gorilla web toolkit, just bad instead of good.
Honestly it a lot of the Rust http frameworks strike me as eerily similar to Falcore, a very early Go http application framework built by ngmoco, a now-defunct game company. Falcore didn't really gain a lot of traction, partially because it provided abstractions that weren't very ergonomic. https://github.com/ngmoco/falcore
The examples showcased by Axum and co. are the "ergonomic simple cases" and it's easy to morph what's provided into any flavor you personally prefer with as many `impl`s and types. Here's[0] my jam rn.
[0]: https://github.com/dman-os/template_rust_web_api/blob/main/s...
Related posts
- Give me your toughest business process challenge, and i'll automate & solve it for FREE
- Imageboard shqip?
- Show HN: I made a spaced repetition tool to master coding problems
- Surprisingly Powerful – Serverless WASM with Rust Article 1
- Rust Keyword Extraction: Creating the YAKE! algorithm from scratch