smithy-rs
dropshot
smithy-rs | dropshot | |
---|---|---|
4 | 11 | |
454 | 753 | |
2.2% | 2.9% | |
9.8 | 9.4 | |
about 9 hours ago | 4 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.
smithy-rs
-
Tips on Creating a Design-First API Using Rust
AWS recently released https://github.com/awslabs/smithy-rs, which is the basis upon which the AWS Rust SDKs are built. The team behind it are still refining it, there’s the odd corner-case with smithy models that will catch it, but it is pretty decent now.
-
Axum + Sqlite + minijinja + htmx winning website combo?
Here's an example of what this looks like in practice: https://github.com/awslabs/smithy-rs/tree/main/rust-runtime/aws-smithy-http-server-python/examples
-
With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
There’s an older internal schema language for API descriptions, but it can be translated to smithy, so that’s being used for all new sdk’s. See https://github.com/awslabs/smithy-rs for instance.
-
Smithy: A language for defining services and SDKs
It's not really a fully finished project yet, so not much. We shipped the AWS SDK for JS v3 with Smithy, the AWS SDK for Go v2 with Smithy, and just launched an alpha of the AWS SDK for Rust using Smithy. More are in the works. We're currently iterating on their code generators to make them easier to use outside the AWS SDKs. AWS SDKs are being built in a layered approach where there's a generic code generator that's really extensible, and then the AWS SDKs extend it to add AWS-specific stuff like regions and credential handling.
We're working to get projects like these to GA: https://github.com/awslabs/smithy-typescript, https://github.com/aws/smithy-go, and https://github.com/awslabs/smithy-rs. And we're also working on service code generation.
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.
What are some alternatives?
smithy-go - Smithy code generators for Go (in development)
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.
juniper - GraphQL server library for Rust
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
rust-dominator - Zero-cost ultra-high-performance declarative DOM library using FRP signals for Rust!
rust-experiments - Small experiments in writing Rust programs to perform specific tasks
tonic - A native gRPC client & server implementation with async/await support.
svelte-axum-project - Starting project template for Rust Axum backend and Svelte frontend
prae - prae is a crate that aims to provide a better way to define types that require validation.
rust-example-caster-api - DEPRECATED: A demo Rust API implementation using Tokio, Axum, async-graphql, and SeaORM
rust-rdom - 🍂 A Rust-based simulated DOM (browser-independent replacement for web_sys)