awesome-smithy
by smithy-lang
Awesome Smithy is a curated list of awesome build-tools, code-generators, examples, and other resources related to the Smithy IDL.
AI summary
Build-tool curator
A curated collection of tools and resources supporting the development of build-tools and code-generators for the Smithy IDL
- stars
- 166
- forks
- 16
- watching
- 8
- awesome list
- 1
- entries
- 49
What's in the list
49 links in 11 sections, with live GitHub stats.activeno commit in 2y
Build tools
Smithy CLI
Smithy CLI is used to build, validate, diff, and transform Smithy models
Gradle Plugin
Integrates Smithy with the Gradle build system
- Mill Plugin
Community supported plugin that integrates smithy with the
- SBT Plugin
Community supported plugin that integrates smithy with the SBT build system for Scala
Code Generators / Client Code Generators
TypeScript
π§ - Client code generation for Typescript
Golang
π§ - Client code generation for Golang
Rust
π§ - Client code generation for Rust
Ruby
π§ - Client code generation for Ruby
Kotlin
π§ - Client code generation for Kotlin
Swift
π§ - Client code generation for Swift
Scala
Community plugin for generation of clients/servers in Scala
Dafny
π§ - Code generation tools for the verification-aware programming language
Python
π§ - Client code generation for Python
Code Generators / Server Code Generators
TypeScript
π§ - Server generator for TypeScript
Rust
π§ - Server generator for Rust
Scala
Community plugin for generation of clients/servers in Scala
Learning resources
Smithy Examples
A collection of examples to help you get up and running with Smithy
aws-samples: Typescript Example service
Shows how to write a Typescript lambda service using Smithy and call the service using a generated client (see: )
Rust server SDK examples
a collection of examples using Smithy to generate a Rust server SDK
kubukoz/smithy4s-course
Smithy/Smithy4s course
IDE Support
Smithy LSP
π§ - A Language Server Protocol implementation for the Smithy IDL
Visual Studio Code Plugin
π§ - Visual Studio Code extension providing a Language Server Protocol implementation for the Smithy IDL
Intellij plugin
π§ - 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 and by default
Zed extension
extension using
Implementations
Smithy Reference Implementation
Smithy reference implementation in Java
Atelier
π§ - Community implementation of Smithy in Rust
Model Converters
- Smithy to OpenAPI
Converts Smithy models to
Smithy to JSONSchema
Converts Smithy models to
- Cloud Formation Resource Schemas
Generating Cloudformation resource schemas from Smithy models
Openapi/JSONSchema to Smithy
smithy-translate : a community-provided CLI tool for best-effort Openapi/JSONSchema to Smithy conversions
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
- Scaling APIs with Smithy
Overview of Smithy's background and features
- Abstraction: Creating the Best developer experience / Model-First Design
An introduction to model first design with Smithy
- Building with the new AWS SDKs for Rust, Kotlin, and Swift
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
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
- Generating Kotlin SDKs with Smithy
KotlinConf talk that provides an overview of Smithy and discusses how can be used to generate Kotlin SDKs
- Elevating API Design With Smithy
Functional Scala talk - Intro to Smithy IDL with JVM Tooling and Smithy4s
Blog Posts
- Introducing Smithy IDL 2.0
Launch announcement for the Smithy IDL 2.0
- Introducing the Smithy CLI
Launch announcement for the Smithy CLI along with examples of how to use the CLI
- Developer Preview: Ruby SDK code generation using Smithy
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
Others
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
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions awesome-smithy.