Skip to content

api-evangelist/smithy

Repository files navigation

Smithy

Smithy is an open source, protocol-agnostic interface definition language (IDL) and toolchain developed at AWS for defining, validating, and generating API clients, servers, and documentation for any programming language. It powers the AWS SDK code generation pipeline and supports protocol-agnostic API modeling with shapes, traits, validators, and code generators. Smithy IDL 2.0 is the current stable version.

Overview

Smithy models consist of shapes (the type system) and traits (annotations). Models can be written in the Smithy IDL syntax or represented as JSON AST. The Smithy CLI can build, validate, diff, and transform models into generated artifacts.

Supported Protocols

  • AWS Protocols: restJson1, restXml, json1.0, json1.1, query, ec2Query
  • Smithy Protocols: rpcv2Cbor
  • Event Streaming: MQTT bindings

Artifacts

JSON Schema

JSON Structure

JSON-LD

Examples

Rules

  • smithy-rules.yml — Spectral ruleset for Smithy-generated OpenAPI conventions

Vocabulary

Code Generators

Language Repository
Java smithy-lang/smithy
Rust smithy-lang/smithy-rs
Python smithy-lang/smithy-python
TypeScript awslabs/smithy-typescript
Kotlin smithy-lang/smithy-kotlin
Go aws/smithy-go

Developer Resources

About

Smithy is an open source, protocol-agnostic interface definition language (IDL) and toolchain developed at AWS for defining, validating, and generating API clients, servers, and documentation for any programming language.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors