/smithy-kotlin

Smithy code generator for Kotlin (in development)

Primary LanguageKotlinApache License 2.0Apache-2.0

Smithy Smithy Kotlin

Smithy code generators for Kotlin.

Getting Started

Development

Module Structure

  • codegen - module(s) for generating Kotlin code from Smithy models

    • protocol-tests - module for generating Smithy protocol tests
    • smithy-aws-kotlin-codegen - module containing AWS-specific codegen, will eventually be refactored to aws-sdk-kotlin
    • smithy-kotlin-codegen - primary codegen module
    • smithy-kotlin-codegen-testutils - utilities for testing generated code (shared with aws-sdk-kotlin)
  • runtime - library code used by generated clients and servers to perform SDK functions

    • auth - authentication and signing related modules
    • crt-util - utilities for using the AWS Common Runtime (CRT)
    • observability - contains various telemetry provider implementations
    • protocol - protocol support (including HTTP, application level protocols, test support, etc)
    • runtime-core - contains core functionality used by all clients, servers, or other runtime modules
    • serde - serialization/deserialization modules
    • smithy-client - runtime support for generated service clients
    • smithy-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 runtime
    • codegen - codegen integration tests for various features (e.g. testing waiters, paginators, etc)
    • compile - compile tests for generated code
    • integration - 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.