Build services.Build customers.Build with Smithy.
Modeling a service should be easy, no matter the interface. Smithy is extensible, typesafe, protocol agnostic, and powers services at AWS.
service CoffeeShop { operations: [ GetMenu ] resources: [ Order ]} operation GetMenu { output : = { ... }} resource Order { identifiers: { id: Uuid } ...}
Model
Build APIs your customers will love using the Smithy Interface Definition Language (IDL). The Smithy IDL provides an intuitive syntax that codifies best practices learned from years of experience building services and SDKs in over a dozen programming languages. Use Smithy's extensible model validation tools to ensure the quality and consistency of your APIs. Customizable linting, validation, and backwards-compatibility checks integrate with your IDE and CI/CD pipelines so you catch API quality issues before your customers do.
Build
Smithy's build tool integrations and plugin system make it easy to get started generating code from a Smithy model. Use one of the many open-source plugins for Smithy or create your own to make everything from model diagrams to SDKs. Write your API model once and generate clients, servers, and documentation for multiple programming languages with Smithy's CLI.
› smithy build
SDKs
Docs
Server Stubs
Features
Protocol-agnostic
Smithy is designed to work with any programming language, describe services running in any environment, and work with any kind of transport or serialization format.
Codify and enforce API governance
Customizable API standards help to automatically ensure that APIs meet customer expectations. Validation rules can be shared and applied to all APIs in an organization.
Designed to evolve
Smithy is extended through traits. Smithy's extensible meta-model can evolve and capture more information about services without breaking changes.
Resource based
Smithy models are defined by resources and operations. Defining services with resources helps lead to better APIs and provides rich information for model transformations.