Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smithy-lang/smithy
Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.
https://github.com/smithy-lang/smithy
smithy smithy-models
Last synced: 2 months ago
JSON representation
Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.
- Host: GitHub
- URL: https://github.com/smithy-lang/smithy
- Owner: smithy-lang
- License: apache-2.0
- Created: 2019-03-22T21:38:10.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-02-22T15:36:36.000Z (5 months ago)
- Last Synced: 2024-02-22T17:31:00.159Z (5 months ago)
- Topics: smithy, smithy-models
- Language: Java
- Homepage: https://smithy.io
- Size: 115 MB
- Stars: 1,570
- Watchers: 29
- Forks: 187
- Open Issues: 70
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Lists
- awesome-list - smithy - agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. | awslabs | 716 | (Java)
- awesome-stars - smithy-lang/smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. (others)
- jimsghstars - smithy-lang/smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. (Java)
- awesome-stars - smithy-lang/smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. (Java)
- awesome-stars - smithy - agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. | smithy-lang | 1704 | (Java)
- awesome-stars - smithy - agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language. | smithy-lang | 1704 | (Java)
README
#
Smithy
[![Build Status](https://github.com/smithy-lang/smithy/workflows/ci/badge.svg)](https://github.com/smithy-lang/smithy/actions/workflows/ci.yml)Smithy defines and generates clients, services, and documentation for
any protocol.* [Smithy Homepage][docs]
* [Specifications][specs]
* [Java API documentation][javadocs]
* [Smithy Gradle Plugin][Smithy Gradle Plugin]
* [Awesome Smithy][awesome-smithy]# Smithy IDL
Smithy models define a service as a collection of resources, operations, and
shapes.```smithy
$version: "2"namespace example.weather
service Weather {
version: "2006-03-01"
resources: [City]
operations: [GetCurrentTime]
}resource City {
identifiers: { cityId: CityId }
read: GetCity
list: ListCities
resources: [Forecast]
}// See the full example at https://smithy.io/2.0/quickstart.html#complete-example
```Find out more about modeling a service with Smithy in the [Quick Start
guide][quickstart].# Building Smithy models
The [Smithy Gradle Plugin] is the best way to get started with building a
Smithy model. First, create a [`smithy-build.json`] file:```json
{
"version": "1.0"
}
```Then, apply the Smithy Gradle Plugin in your `build.gradle.kts` file and run
`gradle build`:```kotlin
plugins {
id("software.amazon.smithy").version("0.6.0")
}
```Finally, create your first model `model/main.smithy`:
```smithy
$version: "2"namespace com.example
service ExampleService {
version: "2020-05-27"
}
```Find out more about building artifacts of your Smithy model in the [Building
Smithy Models][building] guide. For more examples, see the
[examples directory](https://github.com/awslabs/smithy-gradle-plugin/tree/main/examples)
of the Smithy Gradle Plugin repository.# License
This library is licensed under the Apache 2.0 License.
[docs]: https://smithy.io/
[specs]: https://smithy.io/2.0/spec/
[javadocs]: https://smithy.io/javadoc/latest/
[quickstart]: https://smithy.io/2.0/quickstart.html
[Smithy Gradle Plugin]: https://github.com/awslabs/smithy-gradle-plugin/
[`smithy-build.json`]: https://smithy.io/2.0/guides/building-models/build-config.html#using-smithy-build-json
[building]: https://smithy.io/2.0/guides/building-models/index.html
[awesome-smithy]: https://github.com/smithy-lang/awesome-smithy