-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WASM support for the SDK #2087
Labels
Comments
This was referenced Jan 26, 2023
2 tasks
For reference - awsdocs/aws-doc-sdk-examples#4637 |
rcoh
added a commit
that referenced
this issue
May 23, 2023
## Motivation and Context - Controlling time is required for several testing use cases - #2087 - #2262 ## Description Introduce `TimeSource` trait, a real implementation, and a test implementation. ## Testing These changes are used in the timestream PR ## Checklist No changelog, these changes have no impact since the code is not yet utilized ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
3 tasks
rcoh
added a commit
that referenced
this issue
May 30, 2023
…hange warning is spurious) (#2728) ## Motivation and Context - #2262 - #2087 - #2707 This adds `TimeSource` in SDK and service configs so we can effectively control time when executing requests with the SDK at the client level. _note:_ the breaking change is in a trait implementation of a struct we're going to delete, not a real breaking change ## Description - Add `SharedTimeSource` and use it in SdkConfig / `aws-config` / <service>::Config - Wire up the signer and other uses of `SystemTime::now()` that I could find - track down broken tests ## Testing - [x] various unit tests that all still pass ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
5 tasks
2 tasks
github-merge-queue bot
pushed a commit
that referenced
this issue
Jul 27, 2023
) ## Motivation and Context - #2087 test-util pulled in Hyper but that's not strictly necessary ## Description Split out wiremock as it's own features and do some other cleanup. ## Testing CI ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
2 tasks
github-merge-queue bot
pushed a commit
that referenced
this issue
Jul 28, 2023
## Motivation and Context - #2087 ## Description - remove lingering usages of SystemTime::now() - ensure they don't return by adding a clippy.toml ## Testing - CI - Ran the webassembly example ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: John DiSanti <[email protected]>
Velfi
pushed a commit
that referenced
this issue
Jul 31, 2023
) ## Motivation and Context - #2087 test-util pulled in Hyper but that's not strictly necessary ## Description Split out wiremock as it's own features and do some other cleanup. ## Testing CI ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
Velfi
pushed a commit
that referenced
this issue
Jul 31, 2023
## Motivation and Context - #2087 ## Description - remove lingering usages of SystemTime::now() - ensure they don't return by adding a clippy.toml ## Testing - CI - Ran the webassembly example ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: John DiSanti <[email protected]>
1 task
github-merge-queue bot
pushed a commit
that referenced
this issue
Feb 28, 2024
## Motivation and Context <!--- Why is this change required? What problem does it solve? --> <!--- If it fixes an open issue, please link to the issue here --> This change adds a new crate, `aws-smithy-wasm`, that exports a SDK compatible WASI http client. This is a continuation of the work in #2520 using the now stabilized WASI 0.2.0 interfaces from the [wasi crate](https://crates.io/crates/wasi). This supports, but does not finalize the work for #2087 ## Description <!--- Describe your changes in detail --> Add a new crate, `aws-smithy-wasm` which exports a function `wasi_http_client` that will provide the user with a WASI compatible http client. This client is implemented by using the `wasi::http::outgoing_handler` [ref](https://docs.rs/wasi/0.12.0+wasi-0.2.0/wasi/http/outgoing_handler/index.html) along with some utility implementations of `TryFrom` to transform back and worth between the types from the `http` crate and the `wasi::http` types. It also exports a unit struct `WasmSleep` that impls the `AsyncSleep` trait needed by the SDK. ## Testing <!--- Please describe in detail how you tested your changes --> <!--- Include details of your testing environment, and the tests you ran to --> <!--- see how your change affects other areas of the code, etc. --> This is tested via an integration test in `aws/sdk/integration-tests/webassembly` that uses the wasi http-client to vuild a config and an operation (that is not sent). It is further tested in a new canary (`wasm_canary`) that calls the S3 `list_objects_v2` API. ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [X] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: Eduardo Rodrigues <[email protected]> Co-authored-by: Eduardo de Moura Rodrigues <[email protected]> Co-authored-by: ysaito1001 <[email protected]> Co-authored-by: John DiSanti <[email protected]> Co-authored-by: Russell Cohen <[email protected]> Co-authored-by: John DiSanti <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Related SDK issue: awslabs/aws-sdk-rust#59
Currently the SDK doesn't work so well when compiled for WASM. These are the issues we know about:
ring
(0.16.20) pulls inwasm-bindgen
, which is undesirable for cases where the WASM is targeting servers instead of browsersaws-config
pulls in all ofring
just for a SHA-1 hash, which was deemed OK at the time since the SDK usesrustls
by default, andrustls
pulls inring
. However, WASM applications are unlikely to userustls
.time not implemented on this platform
panic. (fix: time not implemented on wasm #2262)There may be additional issues that appear once the above are solved.
The text was updated successfully, but these errors were encountered: