Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

  • 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.
    • Gradle Plugin - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - 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.
      • 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](https://aws.amazon.com/blogs/devops/smithy-server-and-client-generator-for-typescript/)).
      • kubukoz/smithy4s-course - Smithy/Smithy4s course.
      • Smithy Examples - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - A collection of examples to help you get up and running with Smithy.
  • Implementations

    • Server Code Generators

  • Model Converters

    • Server Code Generators

      • Smithy to OpenAPI - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - 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/).
      • Smithy to JSONSchema - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Converts Smithy models to [JSONSchema](https://json-schema.org/).
      • Cloud Formation Resource Schemas - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Generating Cloudformation resource schemas from Smithy models.
      • Smithy to Protobuf - smithy-translate (see above)
  • CICD Support

    • GitHub Actions

  • Videos

  • Blog Posts

    • GitHub Actions

      • Smithy4s-full stack - A series of posts describing an application built with Smithy4s in both front-end and back-end.
      • Introducing Smithy IDL 2.0 - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Launch announcement for the Smithy IDL 2.0.
      • Introducing the Smithy CLI - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Launch announcement for the Smithy CLI along with examples of how to use the CLI.
      • Developer Preview: Ruby SDK code generation using Smithy - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> - Launch announcement for and overview of the AWS Ruby SDK built with Smithy.
  • Code Generators

    • Client Code Generators

      • Ruby - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Ruby.
      • Dafny - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Code generation tools for the [Dafny](https://dafny.org/) verification-aware programming language.
      • Golang - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Client code generation for Golang.
      • 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.
      • 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 - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - 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.
      • Rust - anvil.svg" alt="(official)" title="Smithy Official" height="10px"> 🚧 - Server generator for Rust.
  • Others

    • GitHub Actions

      • 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.
      • 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.
  • 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](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).