Rust native primary client library for the AWS Smithy IDL.

idl, rust, smithy


Atelier Project

Rust native library and tools for the AWS Smithy Interface Definition Language.

MIT License Minimum Rust Version GitHub stars

Given that a Smithy is "the workshop of a smith", this project has been named for "an artist's or designer's studio or workroom". Also, given that Fashion Tech. is just a damn fun place to be these days, it seemed appropriate. This repo contains a number of crates that provide different aspects, or capabilities, around Smithy processing. For clients that wish to use a number of features but don't want to track individual version compatibility the atelier_lib crate incorporates all but the cargo command using features to select the different capabilities.


crate Content Status
atelier_core The Model, Builder, and Selector types and I/O traits. Model: 80%, Builder: 75%, Selector: 20%, Tests: 0%
atelier_smithy The serializer/de-serializer for native Smithy. Writer: 90%, Reader: 0%, Tests: 5%
atelier_json The serializer/de-serializer for the JSON AST Writer: 90%, Reader: 0%, Tests: 5%
atelier_openapi TBD Not Started
atelier_lib Re-export structures from previous crates. Done.
cargo_atelier TBD Not Started


Version 0.1.2

  • Core API support for readers.
  • Parser for Smithy representation.
  • Parser for Smithy's JSON AST representation.
  • Additional documentation.

Version 0.1.1

  • Cleaned up core and builder APIs.
  • Documented all core package APIs.
  • Goal: documentation and examples.

Version 0.1.0

  • Initial types for manipulation of Smithy Models, not including selector expressions.
  • Initial builder types for fluent construction of models.
  • Builder example working to construct the weather model.
  • Complete JSON serialization of the weather model.
  • Complete Smithy serialization of the weather model.
  • Goal: to be able to create a copy of the weather example model in code using the model builder API.


  1. Complete model for selector expressions.
  2. Validation (internal and external) support.
  3. Parser and writer for OpenAPI representation.
  4. Work on cargo command for processing Smithy files.