{"id":3818,"url":"https://github.com/smithy-lang/awesome-smithy","name":"awesome-smithy","description":"Awesome Smithy is a curated list of awesome build-tools, code-generators, examples, and other resources related to the Smithy IDL.","projects_count":63,"last_synced_at":"2026-10-07T07:00:19.482Z","repository":{"id":179498104,"uuid":"639971623","full_name":"smithy-lang/awesome-smithy","owner":"smithy-lang","description":"Awesome Smithy is a curated list of awesome build-tools, code-generators, examples, and other resources related to the Smithy IDL.","archived":false,"fork":false,"pushed_at":"2026-09-16T01:10:18.000Z","size":89,"stargazers_count":261,"open_issues_count":1,"forks_count":26,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-10-05T15:29:58.609Z","etag":null,"topics":["api","awesome","awesome-list","aws","client","codegen","sdk","server","smithy"],"latest_commit_sha":null,"homepage":"https://smithy.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smithy-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-12T16:50:24.000Z","updated_at":"2026-09-29T19:38:12.000Z","dependencies_parsed_at":"2025-10-02T13:01:06.148Z","dependency_job_id":"a32e8065-36cb-4659-907d-8bac1a56b5d8","html_url":"https://github.com/smithy-lang/awesome-smithy","commit_stats":null,"previous_names":["smithy-lang/awesome-smithy"],"tags_count":0,"template":false,"template_full_name":"amazon-archives/__template_Apache-2.0","purl":"pkg:github/smithy-lang/awesome-smithy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fawesome-smithy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fawesome-smithy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fawesome-smithy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fawesome-smithy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smithy-lang","download_url":"https://codeload.github.com/smithy-lang/awesome-smithy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fawesome-smithy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":343170754,"owners_count":38056690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-05T02:00:06.766Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-06T11:16:02.228Z","updated_at":"2026-10-07T07:00:19.482Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Build tools","Learning resources","Model Converters","CICD Support","Videos","Blog Posts","Others","Code Generators","IDE Support","Implementations"],"sub_categories":["Server Code Generators","GitHub Actions","Client Code Generators"],"readme":"# Awesome Smithy\n\n[\u003cimg src=\"/assets/smithy-light.svg#gh-light-mode-only\" align=\"right\" width=\"300\"\u003e](https://smithy.io#gh-light-mode-only)\n[\u003cimg src=\"/assets/smithy-dark.svg#gh-dark-mode-only\" align=\"right\" width=\"300\"\u003e](https://smithy.io#gh-dark-mode-only)\n\n*Awesome Smithy* is a curated list of awesome build-tools, code-generators, examples, and other resources related to\nthe [Smithy IDL](https://github.com/awslabs/smithy).\n\nIf you want your component to appear here, send a pull request to this repository to add it (see the [contribution\nguidelines](#contribute) for more information).\n\nThe Smithy team cannot vouch for the stability or production-worthiness an item on this list unless it has the icon\n\u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e next to it. This icon means the\ncomponent is an official project supported by the [Smithy](https://github.com/smithy-lang) team.\nOfficial Smithy team projects with the 🚧 icon next to them are still a work-in-progress and are not production-ready.\n\n\n## Contents\n  - [Contents](#contents)\n  - [Build tools](#build-tools)\n  - [Code Generators](#code-generators)\n    - [Client Code Generators](#client-code-generators)\n    - [Server Code Generators](#server-code-generators)\n  - [Learning resources](#learning-resources)\n  - [IDE Support](#ide-support)\n  - [Implementations](#implementations)\n  - [Model Converters](#model-converters)\n  - [CICD Support](#cicd-support)\n    - [GitHub Actions](#github-actions)\n  - [Videos](#videos)\n  - [Blog Posts](#blog-posts)\n  - [Others](#others)\n  - [Contribute](#contribute)\n\n## Build tools\n* [Smithy CLI](https://github.com/smithy-lang/smithy/tree/main/smithy-cli) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Smithy CLI is used to build, validate, diff, and transform Smithy models.\n* [Gradle Plugin](https://github.com/smithy-lang/smithy-gradle-plugin) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Integrates Smithy with the Gradle build system.\n* [Mill Plugin](https://disneystreaming.github.io/smithy4s/docs/overview/installation/#mill) - Community supported plugin that integrates smithy with the [Mill build tool](https://github.com/com-lihaoyi/mill).\n* [SBT Plugin](https://disneystreaming.github.io/smithy4s/docs/overview/installation/#sbt) - Community supported plugin that integrates smithy with the SBT build system for Scala.\n* [Smithy Cargo](https://github.com/mellemahp/smithy-cargo) - Community supported build tool that integrates smithy with Cargo build scripts (`build.rs`)\n\n## Code Generators\n### Client Code Generators\n* [TypeScript](https://github.com/awslabs/smithy-typescript) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Typescript.\n* [Java](https://github.com/smithy-lang/smithy-java) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Client libraries, dynamic client that loads models at runtime, and client code generation for Java.\n* [Golang](https://github.com/aws/smithy-go) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Golang.\n* [Rust](https://github.com/awslabs/smithy-rs) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Rust.\n* [Ruby](https://github.com/awslabs/smithy-ruby) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Ruby.\n* [Kotlin](https://github.com/awslabs/smithy-kotlin) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Client code generation for Kotlin.\n* [Swift](https://github.com/awslabs/smithy-swift) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Swift.\n* [Scala](https://github.com/disneystreaming/smithy4s) - Community plugin for generation of clients/servers in Scala.\n* [Dafny](https://github.com/awslabs/smithy-dafny) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Code generation tools for the [Dafny](https://dafny.org/) verification-aware programming language.\n* [Python](https://github.com/smithy-lang/smithy-python) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Client code generation for Python.\n* [Erlang, Elixir, Gleam](https://github.com/f34nk/smithy-beam) - Community plugin for generating clients and servers targeting BEAM languages: Erlang, Elixir, Gleam\n* [C#](https://github.com/thomaslaich/smithy-dotnet) - Community plugin for generation of clients/servers in C#.\n\n### Server Code Generators\n* [TypeScript](https://github.com/awslabs/smithy-typescript) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Server generator for TypeScript.\n* [Java](https://github.com/smithy-lang/smithy-java) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Server code generation for Java.\n* [Rust](https://github.com/awslabs/smithy-rs) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Server generator for Rust.\n* [Scala](https://github.com/disneystreaming/smithy4s) - Community plugin for generation of clients/servers in Scala.\n* [Erlang, Elixir, Gleam](https://github.com/f34nk/smithy-beam) - Community plugin for generating clients and servers targeting BEAM languages: Erlang, Elixir, Gleam\n* [C#](https://github.com/thomaslaich/smithy-dotnet) - Community plugin for generation of clients/servers in C#.\n\n## Learning resources\n* [Smithy Examples](https://github.com/smithy-lang/smithy-examples) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - A collection of examples to help you get up and running with Smithy.\n* [aws-samples: Typescript Example service](https://github.com/aws-samples/smithy-server-generator-typescript-sample) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - 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/)).\n* [Rust server SDK examples](https://github.com/awslabs/smithy-rs/tree/main/examples) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - a collection of examples using Smithy to generate a Rust server SDK.\n* [kubukoz/smithy4s-course](https://github.com/kubukoz/smithy4s-course) - Smithy/Smithy4s course.\n\n## IDE Support\n* [Smithy LSP](https://github.com/awslabs/smithy-language-server) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - A Language Server Protocol implementation for the Smithy IDL.\n* [Visual Studio Code Plugin](https://github.com/awslabs/smithy-vscode) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Visual Studio Code extension providing a Language Server Protocol implementation for the Smithy IDL.\n* [Intellij plugin](https://github.com/awslabs/smithy-intellij) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e 🚧 - Provides IDE integration for the Smithy IDL within IntelliJ IDEA.\n* [iancaffey/smithy-intellij-plugin](https://github.com/iancaffey/smithy-intellij-plugin) - Community plugin for IDE integration for the Smithy IDL in Intellij IDEA.\n* [Tree Sitter Grammar for Smithy](https://github.com/indoorvivants/tree-sitter-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.\n* [Zed extension](https://github.com/joshrutkowski/zed-smithy) - [Zed](https://zed.dev/) extension using [Tree-sitter grammar for Smithy](https://github.com/indoorvivants/tree-sitter-smithy).\n\n## Implementations\n* [Smithy Reference Implementation](https://github.com/awslabs/smithy) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Smithy reference implementation in Java\n* [Atelier](https://github.com/johnstonskj/rust-atelier) 🚧 - Community implementation of Smithy in Rust\n* [smithy-lisp](https://github.com/fukamachi/smithy-lisp) – Community implementation in Common Lisp\n\n## Model Converters\n* [Smithy to OpenAPI](https://smithy.io/2.0/guides/converting-to-openapi.html#smithy-to-openapi) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Converts Smithy models to [OpenAPI](https://www.openapis.org/).\n* [Smithy to JSONSchema](https://github.com/awslabs/smithy/tree/main/smithy-jsonschema) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Converts Smithy models to [JSONSchema](https://json-schema.org/).\n* [Cloud Formation Resource Schemas](https://smithy.io/2.0/guides/generating-cloudformation-resources.html#smithy-to-cloudformation) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Generating Cloudformation resource schemas from Smithy models.\n* [Openapi/JSONSchema to Smithy](https://github.com/disneystreaming/smithy-translate) - smithy-translate : a community-provided CLI tool for best-effort Openapi/JSONSchema to Smithy conversions\n* [Smithy to Protobuf](https://github.com/disneystreaming/smithy-translate) - smithy-translate (see above)\n\n## CICD Support\n### GitHub Actions\n* [setup-smithy-cli](https://github.com/smithy-lang/setup-smithy-cli) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Install the Smithy CLI for a GitHub action to validate, build, format, and diff Smithy models in a GitHub repository.\n* [setup-smithy](https://github.com/marketplace/actions/setup-smithy) - Install Smithy CLI to your GitHub Workflow.\n* [format-smithy](https://github.com/marketplace/actions/format-smithy) - Checks if Smithy Models are formatted.\n\n## Videos\n* [Scaling APIs with Smithy](https://www.youtube.com/watch?v=3GpZzu4guTE) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Overview of Smithy's background and features.\n* [Abstraction: Creating the Best developer experience / Model-First Design](https://youtu.be/gX2sHQafadA?t=1558) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - An introduction to model first design with Smithy.\n* [Building with the new AWS SDKs for Rust, Kotlin, and Swift](https://www.youtube.com/watch?v=Nhk1K1AjYvg) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Explores how these SDKs were built in parallel with Smithy, the commonalities they share, and how to build an app with each one.\n* [Simplify building applications with AWS SDKs](https://www.youtube.com/watch?v=7J0UMAGgAdw) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - 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.\n* [Introduction to Smithy/Smithy4s](https://www.youtube.com/watch?v=CA8qGXMQ3cE) - Scala Conference talk introducing the Smithy IDL and the Smithy4s library\n* [Generating Kotlin SDKs with Smithy](https://www.youtube.com/watch?v=Wsra04prG-E) - KotlinConf talk that provides an overview of Smithy and discusses how `smithy-kotlin` can be used to generate Kotlin SDKs\n* [Elevating API Design With Smithy](https://www.youtube.com/watch?v=tufEEuPn6Lk) - Functional Scala talk - Intro to Smithy IDL with JVM Tooling and Smithy4s \n\n## Blog Posts\n* [Generate standalone types with Smithy](https://aws.amazon.com/blogs/developer/generate-standalone-types-with-smithy) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Launch announcement of Smithy's shape closures, a named set of shapes you declare in the model yourself, used to generate standalone types outside a service model.\n* [Introducing Smithy IDL 2.0](https://aws.amazon.com/blogs/developer/introducing-smithy-idl-2-0/) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Launch announcement for the Smithy IDL 2.0.\n* [Introducing the Smithy CLI](https://aws.amazon.com/blogs/developer/introducing-the-smithy-cli/) \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Launch announcement for the Smithy CLI along with examples of how to use the CLI.\n* [Developer Preview: Ruby SDK code generation using Smithy](https://aws.amazon.com/blogs/developer/developer-preview-smithy-code-generated-ruby-sdk/)  \u003cimg src=\"/assets/smithy-anvil.svg\" alt=\"(official)\" title=\"Smithy Official\" height=\"10px\"\u003e - Launch announcement for and overview of the AWS Ruby SDK built with Smithy.\n* [Smithy4s-full stack](https://blog.indoorvivants.com/2022-06-10-smithy4s-fullstack-part-1) - A series of posts describing an application built with Smithy4s in both front-end and back-end.\n* [Introducing AWS API models and publicly available resources for AWS API definitions](https://aws.amazon.com/blogs/aws/introducing-aws-api-models-and-publicly-available-resources-for-aws-api-definitions/) - Launch announcement for AWS's API models being published as Smithy specs in Maven Central.\n\n## Others\n* [Smithy Playground](https://github.com/kubukoz/smithy-playground/) 🚧 - A language server and VS Code client for interactive experimentation with Smithy services.\n* [Build Server Protocol](https://github.com/build-server-protocol/build-server-protocol) - an extension to the Language Server Protocol using Smithy as a definition language.\n* [Alloy](https://github.com/disneystreaming/alloy/) - a library of Smithy traits providing additional semantics and constraints, used in particular by smithy-translate and smithy4s.\n* [smaws](https://github.com/chris-armstrong/smaws/) - a Smithy generator and AWS SDK built in OCaml\n* [Smithy Selector Playground](http://github.com/kubukoz/smithy-selector-playground/) - a web tool for experimenting with Smithy selectors\n* [Smithy Transcoder](https://github.com/kubukoz/smithy-transcoder) - a web tool for previewing the serialized form of Smithy models\n\n## Contribute\nContributions welcome! Read the [contribution guidelines](CONTRIBUTING.md) first.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/smithy-lang%2Fawesome-smithy/projects"}