Awesome
<img alt="Smithy" src="https://github.com/smithy-lang/smithy/blob/main/docs/_static/smithy-anvil.svg?raw=true" width="32"> Smithy Kotlin
Smithy code generators for Kotlin.
Getting Started
- Get an introduction to Smithy
- Follow Smithy's quickstart guide
- Apply the Smithy Gradle plugin to your project and start generating Kotlin code!
Development
Module Structure
-
codegen
- module(s) for generating Kotlin code from Smithy modelsprotocol-tests
- module for generating Smithy protocol testssmithy-aws-kotlin-codegen
- module containing AWS-specific codegen, will eventually be refactored toaws-sdk-kotlin
smithy-kotlin-codegen
- primary codegen modulesmithy-kotlin-codegen-testutils
- utilities for testing generated code (shared withaws-sdk-kotlin
)
-
runtime
- library code used by generated clients and servers to perform SDK functionsauth
- authentication and signing related modulescrt-util
- utilities for using the AWS Common Runtime (CRT)observability
- contains various telemetry provider implementationsprotocol
- protocol support (including HTTP, application level protocols, test support, etc)runtime-core
- contains core functionality used by all clients, servers, or other runtime modulesserde
- serialization/deserialization modulessmithy-client
- runtime support for generated service clientssmithy-test
- runtime support for generated tests (e.g. smithy protocol tests)testing
- internal testing utilities for the runtime
-
tests
- test and benchmark module(s)benchmarks
- benchmarks for runtimecodegen
- codegen integration tests for various features (e.g. testing waiters, paginators, etc)compile
- compile tests for generated codeintegration
- tests for different versions of our dependencies to ensure compatibility
Feedback
You can provide feedback or report a bug by submitting an issue. This is the preferred mechanism to give feedback so that other users can engage in the conversation, +1 issues, etc.
Contributing
If you are interested in contributing to Smithy Kotlin, please take a look at CONTRIBUTING.
License
This project is licensed under the Apache-2.0 License.
Security
See CONTRIBUTING for more information.