dropshot
rweb
dropshot | rweb | |
---|---|---|
11 | 5 | |
745 | 347 | |
1.9% | - | |
9.4 | 0.0 | |
7 days ago | 12 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dropshot
- Dropshot – expose REST APIs from a Rust program
- Expose REST APIs from a Rust Program
-
Tips on Creating a Design-First API Using Rust
Try dropshot by the Oxide Computer team. It generates an open api spec from your rust code directly.
-
Warp or Rocket.rs or Actix Web?
What about dropshot. Not much features but very simple and auto generates swagger https://github.com/oxidecomputer/dropshot
-
What made you choose the rust web framework you're currently using?
I have used dropshot mostly because of its simplicity.
- Seed – A Rust front-end framework for creating fast and reliable web apps
-
New Tokio blog post: Announcing Axum - Web framework that focuses on ergonomics and modularity
i haven't tried it yet, but https://github.com/oxidecomputer/dropshot apparently offers automated OpenAPI generation: https://docs.rs/dropshot/0.5.1/dropshot/struct.ApiDescription.html
-
Rust for backend development?
At Oxide we are doing backend development in Rust, with our own framework: https://github.com/oxidecomputer/dropshot/#dropshot
- Dropshot a general-purpose Rust crate for exposing REST APIs
-
A web framework I desperately wish there was a Rust equivalent for: FastAPI
Dropshot from Oxide Computer includes openapi generation from code.
rweb
-
Is there a Flask like library for Rust?
rweb is pretty simple. it's based on warp, but with rocket-like #[get("/product/{id}")] which is like Flask's @app.route("/product/").
-
A web framework I desperately wish there was a Rust equivalent for: FastAPI
I wrote a PR this weekend to give FastAPI like UX to rweb! https://github.com/kdy1/rweb/pull/56
-
Replacing FastAPI with Rust: Part 3 - Trying Actix
This crate has an implementation for the Handler trait which I used to model my own Handler trait for an actix-web Service. Using my own struct which implemented that trait suddenly made the "this is not Send" error messages simple enough to decipher. I was able to get the thing to actually compile, but it required using a few unwrap()s on errors which were not Send. I could probably go back and figure out how to wrap or map those errors to something simpler to make my implementation less fragile, but I was already annoyed enough at this implementation that I was headed toward rweb anyway.
-
Replacing FastAPI with Rust: Part 2 - Research
All of that is to say rweb is a possible solution, but not a likely one. The product seems great, and if the code functions as well as the brief examples indicate, this is the best option from a code perspective (oops, spoilers!). Given my concerns about the community, I would have to be comfortable forking and maintaining my own version of this framework in the event that I need changes and can't wait months for a PR to be reviewed. Even if that's not the case, I'll certainly have to write much more complete documentation for my teammates to be able to use this project effectively. I'm not mortally opposed to any of that, but I'd rather avoid it if I can.
What are some alternatives?
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
rust-fastapi-experiments
juniper - GraphQL server library for Rust
rust-dominator - Zero-cost ultra-high-performance declarative DOM library using FRP signals for Rust!
okapi - OpenAPI (AKA Swagger) document generation for Rust projects
tonic - A native gRPC client & server implementation with async/await support.
openapi-python-client - Generate modern Python clients from OpenAPI
prae - prae is a crate that aims to provide a better way to define types that require validation.
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
rust-rdom - 🍂 A Rust-based simulated DOM (browser-independent replacement for web_sys)
graphql-playground - 🎮 GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration)