Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-smithy
Awesome Smithy is a curated list of awesome build-tools, code-generators, examples, and other resources related to the Smithy IDL.
https://github.com/smithy-lang/awesome-smithy
Last synced: 2 days ago
JSON representation
-
Build tools
- Smithy CLI - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Smithy CLI is used to build, validate, diff, and transform Smithy models.
- Gradle Plugin - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Integrates Smithy with the Gradle build system.
- SBT Plugin - Community supported plugin that integrates smithy with the SBT build system for Scala.
-
Learning resources
-
Server Code Generators
- Rust server SDK examples - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - a collection of examples using Smithy to generate a Rust server SDK.
- kubukoz/smithy4s-course - Smithy/Smithy4s course.
- Smithy Examples - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - A collection of examples to help you get up and running with Smithy.
- aws-samples: Typescript Example service - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Shows how to write a Typescript lambda service using Smithy and call the service using a generated client (see: [blog post](https://aws.amazon.com/blogs/devops/smithy-server-and-client-generator-for-typescript/)).
-
-
Implementations
-
Server Code Generators
- Smithy Reference Implementation - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Smithy reference implementation in Java
- Atelier - Community implementation of Smithy in Rust
- Smithy Reference Implementation - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Smithy reference implementation in Java
-
-
Model Converters
-
Server Code Generators
- Smithy to OpenAPI - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Converts Smithy models to [OpenAPI](https://www.openapis.org/).
- Smithy to JSONSchema - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Converts Smithy models to [JSONSchema](https://json-schema.org/).
- Cloud Formation Resource Schemas - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Generating Cloudformation resource schemas from Smithy models.
- Smithy to Protobuf - smithy-translate (see above)
-
-
CICD Support
-
GitHub Actions
- setup-smithy - Install Smithy CLI to your GitHub Workflow.
- format-smithy - Checks if Smithy Models are formatted.
-
-
Videos
-
GitHub Actions
- Scaling APIs with Smithy - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Overview of Smithy's background and features.
- Abstraction: Creating the Best developer experience / Model-First Design - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - An introduction to model first design with Smithy.
- Building with the new AWS SDKs for Rust, Kotlin, and Swift - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Explores how these SDKs were built in parallel with Smithy, the commonalities they share, and how to build an app with each one.
- Simplify building applications with AWS SDKs - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Discusses how Smithy and model-first API design are used at AWS, how the AWS SDKs model client-side primitives such as paginators in Smithy, and how the AWS SDKs are evolving to use a standardized architecture.
- Introduction to Smithy/Smithy4s - Scala Conference talk introducing the Smithy IDL and the Smithy4s library
- Abstraction: Creating the Best developer experience / Model-First Design - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - An introduction to model first design with Smithy.
- Generating Kotlin SDKs with Smithy - KotlinConf talk that provides an overview of Smithy and discusses how `smithy-kotlin` can be used to generate Kotlin SDKs
- Abstraction: Creating the Best developer experience / Model-First Design - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - An introduction to model first design with Smithy.
- Elevating API Design With Smithy - Functional Scala talk - Intro to Smithy IDL with JVM Tooling and Smithy4s
-
-
Blog Posts
-
GitHub Actions
- Introducing Smithy IDL 2.0 - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Launch announcement for the Smithy IDL 2.0.
- Introducing the Smithy CLI - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Launch announcement for the Smithy CLI along with examples of how to use the CLI.
- Developer Preview: Ruby SDK code generation using Smithy - favicon.png" alt="(official)" title="Smithy Official" height="16px"> - Launch announcement for and overview of the AWS Ruby SDK built with Smithy.
- Smithy4s-full stack - A series of posts describing an application built with Smithy4s in both front-end and back-end.
-
-
Code Generators
-
Client Code Generators
- Golang - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Client code generation for Golang.
- Swift - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Client code generation for Swift.
- Dafny - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Code generation tools for the [Dafny](https://dafny.org/) verification-aware programming language.
- Python - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Client code generation for Python.
-
Server Code Generators
- TypeScript - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Server generator for TypeScript.
- Scala - Community plugin for generation of clients/servers in Scala.
-
-
IDE Support
-
Server Code Generators
- Smithy LSP - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - A Language Server Protocol implementation for the Smithy IDL.
- Visual Studio Code Plugin - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Visual Studio Code extension providing a Language Server Protocol implementation for the Smithy IDL.
- Intellij plugin - favicon.png" alt="(official)" title="Smithy Official" height="16px"> 🚧 - Provides IDE integration for the Smithy IDL within IntelliJ IDEA.
- iancaffey/smithy-intellij-plugin - Community plugin for IDE integration for the Smithy IDL in Intellij IDEA.
- Tree Sitter Grammar for Smithy - Tree-sitter grammar for Smithy. Included in [Neovim](https://github.com/nvim-treesitter/nvim-treesitter) and [Helix](https://docs.helix-editor.com/) by default.
- Zed extension - [Zed](https://zed.dev/) extension using [Tree-sitter grammar for Smithy](https://github.com/indoorvivants/tree-sitter-smithy).
-
-
Others
-
GitHub Actions
- Smithy Playground - A language server and VS Code client for interactive experimentation with Smithy services.
- Build Server Protocol - an extension to the Language Server Protocol using Smithy as a definition language.
- Alloy - a library of Smithy traits providing additional semantics and constraints, used in particular by smithy-translate and smithy4s.
-
Programming Languages
Categories
Sub Categories
Keywords
smithy
10
build-tool
3
scala
3
idl
2
intellij-plugin
2
smithy-models
2
codegen
2
aws
2
language-server-protocol
2
api
1
examples
1
language-server
1
golang
1
gradle-plugin
1
gradle
1
intellij
1
plugin
1
rust
1
lsp-server
1
smithy4s
1
build-server-protocol
1
java
1
json-rpc
1
http
1
json
1
scala-js
1
scala-native
1
xml
1
json-schema
1
openapi
1
protobuf
1
swagger
1