smithy-go
smithy-rs
smithy-go | smithy-rs | |
---|---|---|
1 | 4 | |
150 | 452 | |
2.7% | 2.2% | |
7.8 | 9.8 | |
22 days ago | 4 days ago | |
Java | 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-go
-
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.
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.
What are some alternatives?
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.
ANTLR - ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
rust-experiments - Small experiments in writing Rust programs to perform specific tasks
smithy-typescript - Smithy code generators for TypeScript. (in development)
svelte-axum-project - Starting project template for Rust Axum backend and Svelte frontend
NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
rust-example-caster-api - DEPRECATED: A demo Rust API implementation using Tokio, Axum, async-graphql, and SeaORM
hacker-laws - 💻📖 Laws, Theories, Principles and Patterns that developers will find useful. #hackerlaws
libninja - Generate client libraries that are featureful, human, well-documented, and async based on OpenAPI specs