Skip to content
forked from 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.

License

Notifications You must be signed in to change notification settings

sugmanue/smithy

This branch is 21 commits behind smithy-lang/smithy:main.

Folders and files

NameName
Last commit message
Last commit date
Dec 5, 2024
Jan 14, 2025
Dec 20, 2024
Dec 20, 2024
Apr 9, 2024
Feb 24, 2025
Feb 14, 2025
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Feb 18, 2025
Feb 14, 2025
Dec 20, 2024
Feb 19, 2025
Feb 13, 2025
Feb 14, 2025
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Feb 7, 2025
Dec 20, 2024
Feb 18, 2025
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Dec 20, 2024
Jan 17, 2025
Dec 20, 2024
Jan 6, 2025
Dec 20, 2024
Dec 20, 2024
Feb 19, 2025
Dec 20, 2024
Dec 10, 2024
Dec 20, 2024
Dec 10, 2024
Jan 10, 2025
Mar 23, 2019
Dec 16, 2024
Mar 23, 2022
Mar 23, 2019
Oct 27, 2021
Nov 27, 2024
Jan 10, 2025
Dec 16, 2024
Jan 8, 2025
Mar 12, 2024
Mar 12, 2024
Nov 18, 2022
Dec 18, 2024

Repository files navigation

Smithy Smithy

Build Status

Smithy defines and generates clients, services, and documentation for any protocol.

Smithy IDL

Smithy models define a service as a collection of resources, operations, and shapes.

$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.

Building Smithy models

Important

Before you proceed, make sure you have the Smithy CLI installed.

The Smithy CLI is the easiest way to get started with building Smithy models. First, create a smithy-build.json file:

{
    "version": "1.0",
    "sources": ["model"]
}

Next, create your first model model/main.smithy:

$version: "2"

namespace com.example

service ExampleService {
    version: "2020-05-27"
}

Finally, run smithy build to build the model with the Smithy CLI.

Find out more about building artifacts of your Smithy model in the Building Smithy Models guide. For more examples, see the examples repository

License

This library is licensed under the Apache 2.0 License.

About

Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 80.2%
  • Smithy 19.5%
  • Python 0.2%
  • Shell 0.1%
  • Dockerfile 0.0%
  • Batchfile 0.0%