spectrum
smithy
spectrum | smithy | |
---|---|---|
1 | 5 | |
112 | 1,636 | |
- | 1.7% | |
8.1 | 9.6 | |
5 days ago | 6 days ago | |
Go | Java | |
MIT License | 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.
spectrum
-
OpenAPI Generator allows generation of API client libraries from OpenAPI Specs
Disclosure: I'm a contributor to the project.
OpenAPI Spec and auto-generated API clients are very useful when multiple languages need to be supported, like when running a developer program. I've worked at companies that both use OpenAPI Generator for official clients and ones that wrote our own tools for API client SDK generation (with different design philosophy). I've used a number of generators myself to compare and submitted fixes / enhancements to OpenAPI Generator. I used the Go client generator a while back and compared it to others, and recently started using the Crystal one.
To get the most the project, the following is useful: (a) need to support multiple languages, (b) ability to update the generator's code, both in Java and templates (Mustache or Handlebars), and (c) ability to discuss design in GitHub issues and the Slack channel.
The nice thing about OpenAPI Spec is that there is an ecosystem of tooling to support it, including rendering API references (HTML and PDF), API explorers (HTML pages to execute API calls), API clients, etc. But there is a learning curve. For writing specs by hand, I use and favor the Stoplight Studio IDE ( https://stoplight.io/studio ). For programmatically analyzing and editing specs, which is especially useful for finalizing auto-generated specs, I've built an OpenAPI Spec SDK library to make this easier ( https://github.com/grokify/spectrum ).
smithy
- Smithy
-
OpenAPI Generator allows generation of API client libraries from OpenAPI Specs
Also check out Smithy from AWS (https://github.com/awslabs/smithy), the code it generates is much better. It's influenced by the new AWS SDKs so it has generator support for Rust.
-
Recommendations for Rust Open-API client generators? (Looking to experiment with api.congress.gov)
https://github.com/awslabs/smithy (maybe?)
-
Smithy: A language for defining services and SDKs
For curiosity and testing what I learned from CocoR https://ssw.jku.at/Research/Projects/Coco/ I created a parser for Smithy that anyone can see/use here https://github.com/awslabs/smithy/issues/793 , also include a transformed the ABNF IDL to an EBNF accepted by https://www.bottlecaps.de/rr/ui
What are some alternatives?
k8s-openapi - Rust definitions of the resource types in the Kubernetes client API
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
fusionauth-openapi - FusionAuth OpenAPI client
NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
vcloud-rest-openapi - OpenAPI definitions for vCloud Director's Rest API
yew - Rust / Wasm framework for creating reliable and efficient web applications
smithy-typescript - Smithy code generators for TypeScript. (in development)
oapi-codegen - Generate Go client and server boilerplate from OpenAPI 3 specifications
smithy-go - Smithy code generators for Go (in development)
m3o - Serverless Micro Services
progenitor - An OpenAPI client generator