{"id":13770721,"url":"https://github.com/johnstonskj/rust-atelier","last_synced_at":"2025-08-30T05:05:55.838Z","repository":{"id":43372831,"uuid":"273017427","full_name":"johnstonskj/rust-atelier","owner":"johnstonskj","description":"Rust native core model for the AWS Smithy IDL","archived":false,"fork":false,"pushed_at":"2023-03-31T00:57:25.000Z","size":3212,"stargazers_count":77,"open_issues_count":11,"forks_count":11,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-06T14:56:03.387Z","etag":null,"topics":["idl","rust","smithy"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnstonskj.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":null,"security":null,"support":null,"governance":null}},"created_at":"2020-06-17T15:54:46.000Z","updated_at":"2024-11-14T11:18:35.000Z","dependencies_parsed_at":"2023-02-05T00:16:13.509Z","dependency_job_id":"36de3287-a13c-4be7-93b7-0a06b3677678","html_url":"https://github.com/johnstonskj/rust-atelier","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnstonskj%2Frust-atelier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnstonskj%2Frust-atelier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnstonskj%2Frust-atelier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnstonskj%2Frust-atelier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnstonskj","download_url":"https://codeload.github.com/johnstonskj/rust-atelier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247557767,"owners_count":20958047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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"}},"keywords":["idl","rust","smithy"],"created_at":"2024-08-03T17:00:41.039Z","updated_at":"2025-04-06T22:10:33.966Z","avatar_url":"https://github.com/johnstonskj.png","language":"Rust","funding_links":[],"categories":["Implementations","rust"],"sub_categories":["Server Code Generators"],"readme":"# The _Atelier_ Project\n\nRust native library and tools for the AWS [Smithy](https://github.com/awslabs/smithy) Interface Definition Language.\n\n![MIT License](https://img.shields.io/badge/license-mit-118811.svg)\n![Minimum Rust Version](https://img.shields.io/badge/Min%20Rust-1.48-green.svg)\n![Rust](https://github.com/johnstonskj/rust-atelier/workflows/Rust/badge.svg)\n![Audit](https://github.com/johnstonskj/rust-atelier/workflows/Security%20audit/badge.svg)\n[![GitHub stars](https://img.shields.io/github/stars/johnstonskj/rust-atelier.svg)](https://github.com/johnstonskj/rust-atelier/stargazers)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/johnstonskj/rust-atelier)\n\nSmithy is a framework around a language and runtime neutral IDL for service definition. It consists of a semantic model,\na native IDL representation, and a mapping to JSON. The goal of this work is to replicate these core components of \nSmithy in Rust but also to experiment in alternate integrations such as the representation of the semantic model in \nRDF. This work should provide the basis for Rust code generation from a Smithy model and other tooling opportunities,\nbut those are not included in this repo.\n\n**The Name \"Atelier\"**\n\nGiven that a Smithy is \"_the workshop of a smith_\", this project has been named for \"_an artist's or designer's studio or \nworkroom_\". Also, given that Fashion Tech. is just a damn fun place to be these days, it seemed appropriate. \n\n## Crates\n\nThis repo contains a number of crates that provide different aspects, or capabilities, around Smithy processing. For \nclients that wish to use a number of features but don't want to track individual version compatibility the `atelier_lib` \ncrate incorporates all, except the cargo command, using features to select the different capabilities.\n\n| crate                                      | Content                                                | Status                                 |\n|--------------------------------------------|--------------------------------------------------------|----------------------------------------|\n| [`atelier_core`](./atelier-core)           | The Model, Builder, and Selector types and I/O traits. | Model: Done, Builder: Done, Tests: OK  |\n| [`atelier_assembler`](./atelier-assembler) | merge files into a single in-memory Model.             | Model: Done, Tests: Low               |\n| [`atelier_describe`](./atelier-describe)   | Model documentation writer, uses `somedoc` crate.      | Writer: 75%, Tests: Low                |\n| [`atelier_json`](./atelier-json)           | The serializer/de-serializer for the JSON AST.         | Reader/Writer: Done, Tests: Low        |\n| [`atelier_lib`](./atelier-lib)             | Re-export structures from previous crates.             | Done.                                  |\n| [`atelier_openapi`](./atelier-openapi)     | A Serializer only to OpenAPI.                          | Not Started                            |\n| [`atelier_query`](./atelier-query)         | Evaluator for Smithy select expressions.               | Not Started                            |\n| [`atelier_rdf`](./atelier-rdf)             | The serializer/de-serializer to RDF.                   | Model: Done, Writer: Done, Tests: Low  |\n| [`atelier_smithy`](./atelier-smithy)       | The serializer/de-serializer for native Smithy.        | Reader/Writer: Done, Tests: Low        |\n| [`cargo_atelier`](./cargo-atelier)         | Cargo command to lint, validate, and convert models.   | Commands working correctly.            |\n\n## Book\n\nThis repo also contains the source (using [mdbook](https://rust-lang.github.io/mdBook/)) of a more complete documentation\nset. This is built using GitHub pages and accessible at [rust-atelier.dev](https://rust-atelier.dev/).\n\n## Changes\n\nSee individual crate README files.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnstonskj%2Frust-atelier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnstonskj%2Frust-atelier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnstonskj%2Frust-atelier/lists"}