Go to file
Russell Cohen a9b6e6e1a8
Deserialize Extended S3 Errors (#429)
* Add customization for S3 host ID

* Cleanup and fully replace the s3 protocol

* Only generate the customization for S3

* Fix bugs which caused rustfmt to crash

* Add test

* Back out unused change

* Update aws/sdk/integration-tests/s3/Cargo.toml

* CR feedback, add missing test
2021-05-28 12:55:07 -04:00
.github/workflows Update ci.yaml (#365) 2021-05-11 18:07:55 -04:00
aws Deserialize Extended S3 Errors (#429) 2021-05-28 12:55:07 -04:00
codegen Deserialize Extended S3 Errors (#429) 2021-05-28 12:55:07 -04:00
codegen-test Finish the JSON serialization refactor (#423) 2021-05-26 15:43:44 -07:00
design Update design docs link 2021-05-24 10:51:03 -04:00
gradle Add pre-commit hooks (#17) 2020-11-04 22:09:00 -05:00
rust-runtime Deserialize Extended S3 Errors (#429) 2021-05-28 12:55:07 -04:00
.gitignore Sensitive trait (#229) 2021-02-23 23:09:03 +00:00
.pre-commit-config.yaml Update rustfmt hook to run on all files (#348) 2021-04-30 17:33:20 -04:00
CODE_OF_CONDUCT.md Initial commit 2020-10-28 06:37:45 -07:00
CONTRIBUTING.md master -> main in Contributing.md (#300) 2021-04-14 14:46:50 +00:00
LICENSE Initial commit 2020-10-28 06:37:45 -07:00
NOTICE Initial commit 2020-10-28 06:37:45 -07:00
README.md Fix design docs link 2021-05-22 20:37:40 -04:00
build.gradle.kts Run all tests in the same cargo workspace (#28) 2020-11-17 11:35:30 -05:00
gradle.properties Protocol unification & Add Rest XML deserialization support (#369) 2021-05-14 22:23:02 +00:00
gradlew Add gradle files 2020-10-28 11:01:13 -04:00
gradlew.bat Add gradle files 2020-10-28 11:01:13 -04:00
settings.gradle.kts Deserialize Extended S3 Errors (#429) 2021-05-28 12:55:07 -04:00
test.sh Credentials Provider Initial Implementation (#179) 2021-01-28 10:39:05 -05:00

README.md

Smithy Rust status

Smithy code generators for Rust

The nightly SDK build can be found under Actions -> CI (take latest run) -> Artifacts

Design documentation (WIP)

All internal and external interfaces are considered unstable and subject to change without notice.

Setup

  1. ./gradlew will setup gradle for you. JDK 11 is required.
  2. 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 into sdk/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 code generation
  • codegen-test: Smithy protocol test generation & integration tests for Smithy whitelabel code
  • design: Design documentation. See the design/README.md for details about building / viewing.