Skip to content
/ smithy Public
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

kiiadi/smithy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smithy

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

Smithy is a developer preview; we will continue to provide updates with new features, integrations, and fixes.

Documentation for Smithy, including the specification, can be found in the online documentation.

Modeling in Smithy

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

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://awslabs.github.io/smithy/quickstart.html#complete-example

Find out more about modeling a service with Smithy in the Quick Start guide.

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:

{
    "version": "1.0"
}

Then, apply the Smithy Gradle Plugin in your build.gradle.kts file and run gradle build:

plugins {
   java
   id("software.amazon.smithy").version("0.2.0")
}

Find out more about building artifacts of your Smithy model in the Building Smithy Models guide.

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

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.5%
  • Other 0.5%