{"id":13514820,"url":"https://github.com/smithy-lang/smithy","last_synced_at":"2026-01-29T21:13:44.032Z","repository":{"id":37359253,"uuid":"177212349","full_name":"smithy-lang/smithy","owner":"smithy-lang","description":"Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.","archived":false,"fork":false,"pushed_at":"2025-04-25T15:59:44.000Z","size":157423,"stargazers_count":1930,"open_issues_count":93,"forks_count":231,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-04-25T16:51:51.227Z","etag":null,"topics":["smithy","smithy-models"],"latest_commit_sha":null,"homepage":"https://smithy.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smithy-lang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-22T21:38:10.000Z","updated_at":"2025-04-25T15:59:48.000Z","dependencies_parsed_at":"2023-07-28T15:59:28.322Z","dependency_job_id":"4a912a87-c50b-46b9-84e5-e33ec72cac53","html_url":"https://github.com/smithy-lang/smithy","commit_stats":null,"previous_names":["smithy-lang/smithy","awslabs/smithy"],"tags_count":98,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fsmithy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fsmithy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fsmithy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithy-lang%2Fsmithy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smithy-lang","download_url":"https://codeload.github.com/smithy-lang/smithy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251297347,"owners_count":21566800,"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":["smithy","smithy-models"],"created_at":"2024-08-01T05:01:02.248Z","updated_at":"2026-01-29T21:13:44.027Z","avatar_url":"https://github.com/smithy-lang.png","language":"Java","funding_links":[],"categories":["others","Java","开发框架"],"sub_categories":[],"readme":"# \u003cimg alt=\"Smithy\" src=\"docs/_static/smithy-anvil.svg\" width=\"32\"\u003e Smithy\n[![Build Status](https://github.com/smithy-lang/smithy/workflows/ci/badge.svg)](https://github.com/smithy-lang/smithy/actions/workflows/ci.yml)\n\nSmithy defines and generates clients, services, and documentation for\nany protocol.\n\n* [Smithy Homepage][docs]\n* [Specifications][specs]\n* [Java API documentation][javadocs]\n* [Smithy Gradle Plugin][Smithy Gradle Plugin]\n* [Awesome Smithy][awesome-smithy]\n\n\n# Smithy IDL\n\nSmithy models define a service as a collection of resources, operations, and\nshapes.\n\n```smithy\n$version: \"2\"\n\nnamespace example.weather\n\nservice Weather {\n    version: \"2006-03-01\"\n    resources: [City]\n    operations: [GetCurrentTime]\n}\n\nresource City {\n    identifiers: { cityId: CityId }\n    read: GetCity\n    list: ListCities\n    resources: [Forecast]\n}\n\n// See the full example at https://smithy.io/2.0/quickstart.html#complete-example\n```\n\nFind out more about modeling a service with Smithy in the [Quick Start\nguide][quickstart].\n\n\n# Building Smithy models\n\u003e [!IMPORTANT]  \n\u003e Before you proceed, make sure you have the [Smithy CLI installed](https://smithy.io/2.0/guides/smithy-cli/cli_installation.html#cli-installation).\n\nThe [Smithy CLI] is the easiest way to get started with building Smithy models. First, create a [`smithy-build.json`] file:\n\n```json\n{\n    \"version\": \"1.0\",\n    \"sources\": [\"model\"]\n}\n```\n\nNext, create your first model `model/main.smithy`:\n\n```smithy\n$version: \"2\"\n\nnamespace com.example\n\nservice ExampleService {\n    version: \"2020-05-27\"\n}\n```\n\nFinally, run `smithy build` to build the model with the [Smithy CLI].\n\nFind out more about building artifacts of your Smithy model in the [Building\nSmithy Models][building] guide. For more examples, see the\n[examples repository](https://github.com/smithy-lang/smithy-examples)\n\n# License\n\nThis library is licensed under the Apache 2.0 License.\n\n[docs]: https://smithy.io/\n[specs]: https://smithy.io/2.0/spec/\n[javadocs]: https://smithy.io/javadoc/latest/\n[quickstart]: https://smithy.io/2.0/quickstart.html\n[Smithy Gradle Plugin]: https://github.com/smithy-lang/smithy-gradle-plugin/\n[Smithy CLI]: https://smithy.io/2.0/guides/smithy-cli/index.html\n[`smithy-build.json`]: https://smithy.io/2.0/guides/building-models/build-config.html#using-smithy-build-json\n[building]: https://smithy.io/2.0/guides/smithy-build-json.html\n[awesome-smithy]: https://github.com/smithy-lang/awesome-smithy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmithy-lang%2Fsmithy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmithy-lang%2Fsmithy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmithy-lang%2Fsmithy/lists"}