mirror of https://github.com/smithy-lang/smithy-rs
fe0b125dd7
* Fix label & query URI encoding https://github.com/awslabs/aws-sdk-rust/issues/331 demonstrated that we were failing to properly encode characters for URI path components and query components in several situation. This: - Fixes the specific bugs - Adds proptests (run locally with 16K cases) to verify that this is the complete set. - Adds an S3-specific protocol test that targets this issue * Make the test a bit stronger * Update changelog |
||
---|---|---|
.cargo | ||
.github | ||
.pre-commit-hooks | ||
aws | ||
buildSrc | ||
codegen | ||
codegen-server | ||
codegen-server-test | ||
codegen-test | ||
design | ||
gradle | ||
rust-runtime | ||
tools | ||
.gitignore | ||
.pre-commit-config.yaml | ||
CHANGELOG.md | ||
CHANGELOG.next.toml | ||
CODEOWNERS | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
NOTICE | ||
README.md | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle.kts | ||
test.sh |
README.md
Smithy Rust
Smithy code generators for Rust
The nightly SDK build can be found under Actions -> CI (take latest run) -> Artifacts
All internal and external interfaces are considered unstable and subject to change without notice.
Setup
./gradlew
will setup gradle for you. JDK 11 is required.- Running tests requires a working Rust installation. See Rust docs for installation instructions on your platform. Minimum supported Rust version is the latest released Rust version, although older versions may work.
Generate an AWS SDK
The generated SDK will be placed in aws/sdk/build/aws-sdk
.
./gradlew :aws:sdk:assemble # Generate an SDK. Do not attempt to compile / run tests
./gradlew :aws:sdk:test # Run all the tests
./gradlew :aws:sdk:cargoCheck # only validate that it compiles
Run tests
./test.sh
This will run all the unit tests, codegen example models & Dynamo DB, validate that the generated code compiles, and run any tests targeting the generated code.
Development
For development, pre-commit hooks may be useful. Setup:
brew install pre-commit # (or appropriate for your platform: https://pre-commit.com/)
pre-commit install
Project Layout
aws
: AWS specific codegen & Rust code (signing, endpoints, customizations, etc.) Common commands:./gradlew :aws:sdk:assemble
: Generate (but do not test / compile etc.) a fresh SDK intosdk/build/aws-sdk
./gradlew :aws:sdk:test
: Generate & run all tests for a fresh SDK./gradlew :aws:sdk:{cargoCheck, cargoTest, cargoDocs, cargoClippy}
: Generate & run specified cargo command.
codegen
: Whitelabel Smithy client code generationcodegen-test
: Smithy protocol test generation & integration tests for Smithy client whitelabel codedesign
: Design documentation. See the design/README.md for details about building / viewing.codegen-server
: Whitelabel Smithy server code generationcodegen-server-test
: Smithy protocol test generation & integration tests for Smithy server whitelabel code