Overview of Smithy Linters
mainmetadata section of a model, enabling customizable validation and style enforcement that is tied to the model definition itself.repository·main·Indexed 23 days ago
https://github.com/smithy-lang/smithyAn Interface Definition Language (IDL) for defining services, resources, and operations to generate clients, services, and documentation for various protocols. The ecosystem includes the Smithy CLI for building models, SmithyBuild for model validation and projections, Smithy Codegen for artifact generation, and Smithy Diff for detecting backward-incompatible changes between models.
metadata section of a model, enabling customizable validation and style enforcement that is tied to the model definition itself.Smithy JMESPath is a Java-based implementation of the JMESPath parser.
Key Characteristics:
SmithyBuild is a library designed for managing Smithy models during the build process. It provides capabilities for:
The SmithyModel module is the central component for working with Smithy models. It provides the core implementation for the following lifecycle operations:
smithy-protocol-traits module provides implementations for Smithy protocol traits. Specifically, it includes support for RPC v2, which is an RPC protocol designed to support multiple wire formats.smithy-mqtt-traits module provides the implementation of MQTT binding traits for Smithy. These traits allow you to define MQTT-specific metadata and constraints within your Smithy models, enabling tools to understand how Smithy shapes map to MQTT topics, payloads, and other MQTT-specific semantics.Smithy models can be used to automate the generation of clients and servers across various programming languages. The generated code handles low-level implementation details such as endpoints, serialization, and deserialization, ensuring consistency between the model and the implementation.
To find available generators for specific languages, refer to the Awesome Smithy repository.
smithy-aws-traits package provides a collection of traits and validators specifically designed for modeling AWS services. These traits allow you to apply AWS-specific semantics, constraints, and validation rules to your Smithy models, ensuring they align with the standards used across most AWS services. For a deep dive into the formal semantics of how these traits are applied, refer to the Smithy specification.Smithy is an Interface Definition Language (IDL) used to define and generate clients, services, and documentation for any protocol. A Smithy model defines 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]
}