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: 21 days ago
JSON representation

Blog Posts

GitHub Actions

Build tools

  • Smithy CLI - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Smithy CLI is used to build, validate, diff, and transform Smithy models.
  • SBT Plugin - Community supported plugin that integrates smithy with the SBT build system for Scala.
  • Gradle Plugin - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Integrates Smithy with the Gradle build system.
  • Smithy Cargo - Community supported build tool that integrates smithy with Cargo build scripts (build.rs)

CICD Support

GitHub Actions

  • setup-smithy - Install Smithy CLI to your GitHub Workflow.
  • format-smithy - Checks if Smithy Models are formatted.
  • setup-smithy-cli - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Install the Smithy CLI for a GitHub action to validate, build, format, and diff Smithy models in a GitHub repository.

Code Generators

Client Code Generators

  • Golang - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - 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 verification-aware programming language.
  • Python - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Python.
  • Ruby - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Ruby.
  • Kotlin - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Kotlin.
  • Swift - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Swift.
  • Dafny - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Code generation tools for the Dafny verification-aware programming language.
  • Erlang, Elixir, Gleam - Community plugin for generating clients and servers targeting BEAM languages: Erlang, Elixir, Gleam
  • C# - Community plugin for generation of clients/servers in C#.

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.
  • Java - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Server code generation for Java.
  • TypeScript - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Server generator for TypeScript.
  • Rust - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Server generator for Rust.

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 - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - 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 and Helix by default.
  • Zed extension - Zed extension using Tree-sitter grammar for Smithy.
  • Smithy LSP - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - A Language Server Protocol implementation for the Smithy IDL.
  • Visual Studio Code Plugin - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Visual Studio Code extension providing a Language Server Protocol implementation for the Smithy IDL.

Implementations

Server Code Generators

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.
  • Smithy Examples - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - A collection of examples to help you get up and running with Smithy.
  • aws-samples: Typescript Example service - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Shows how to write a Typescript lambda service using Smithy and call the service using a generated client (see: blog post).
  • kubukoz/smithy4s-course - Smithy/Smithy4s course.
  • Rust server SDK examples - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - a collection of examples using Smithy to generate a Rust server SDK.

Model Converters

Server Code Generators

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.
  • smaws - a Smithy generator and AWS SDK built in OCaml
  • Smithy Selector Playground - a web tool for experimenting with Smithy selectors
  • Smithy Transcoder - a web tool for previewing the serialized form of Smithy models
  • Smithy Playground - A language server and VS Code client for interactive experimentation with Smithy services.
  • Alloy - a library of Smithy traits providing additional semantics and constraints, used in particular by smithy-translate and smithy4s.
  • smaws - a Smithy generator and AWS SDK built in OCaml
  • Smithy Selector Playground - a web tool for experimenting with Smithy selectors

Videos

GitHub Actions