Skip to content

Commit 700f939

Browse files
authored
chore: update for async support (#1560)
1 parent 510dde3 commit 700f939

35 files changed

+4984
-4517
lines changed

.github/workflows/library_rust_tests.yml

+10-16
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
id-token: write
3333
contents: read
3434
env:
35-
RUST_MIN_STACK: 404857600
35+
RUST_MIN_STACK: 838860800
3636
steps:
3737
- name: Support longpaths on Git checkout
3838
run: |
@@ -55,14 +55,11 @@ jobs:
5555
uses: actions-rust-lang/[email protected]
5656
with:
5757
components: rustfmt
58-
# uncomment this after Rust formatter works
59-
# - name: Rustfmt Check
60-
# uses: actions-rust-lang/rustfmt@v1
6158

6259
- name: Setup Dafny
63-
uses: dafny-lang/setup-dafny-action@v1.7.0
60+
uses: dafny-lang/setup-dafny-action@v1.8.0
6461
with:
65-
dafny-version: nightly-2024-12-03-4954170
62+
dafny-version: nightly-2025-01-30-7db1e5f
6663

6764
- name: Update MPL submodule if using MPL HEAD
6865
if: ${{ inputs.mpl-head == true }}
@@ -73,16 +70,6 @@ jobs:
7370
git submodule update --init --recursive
7471
git rev-parse HEAD
7572
76-
# Remove this after the formatting in Rust starts working
77-
- name: smithy-dafny Rust hacks
78-
shell: bash
79-
run: |
80-
if [ "$RUNNER_OS" == "macOS" ]; then
81-
sed -i '' 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' submodules/smithy-dafny/SmithyDafnyMakefile.mk
82-
else
83-
sed -i 's|rustfmt --edition 2021 runtimes/rust/src/implementation_from_dafny.rs|#&|' submodules/smithy-dafny/SmithyDafnyMakefile.mk
84-
fi
85-
8673
- name: Setup Java 17 for codegen
8774
uses: actions/setup-java@v3
8875
with:
@@ -123,6 +110,13 @@ jobs:
123110
run: |
124111
make test_rust
125112
113+
- name: Test ${{ matrix.library }} Rust Debug
114+
if: ${{ matrix.library != 'TestVectors' }}
115+
shell: bash
116+
working-directory: ./${{ matrix.library }}
117+
run: |
118+
make test_rust test_rust_debug
119+
126120
- name: Test Examples for Rust in ${{ matrix.library }}
127121
if: ${{ matrix.library == 'DynamoDbEncryption' }}
128122
working-directory: ./${{ matrix.library }}/runtimes/rust/

.github/workflows/smithy-diff.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
FILES: ${{ steps.file-changes.outputs.FILES }}
3636
if: ${{env.FILES != ''}}
3737
run: |
38-
# TODO: If https://github.com/smithy-lang/smithy-dafny/issues/491 is resolved, remove comment about this issue.
38+
# If https://github.com/smithy-lang/smithy-dafny/issues/491 is resolved, remove comment about this issue.
3939
COMMENT="@${{github.event.pull_request.user.login}} and @${{github.actor}}, I noticed you are updating the smithy model files.\nDoes this update need new or updated javadoc trait documentation?\n Are you adding constraints inside list, map or union? Do you know about this issue: https://github.com/smithy-lang/smithy-dafny/issues/491?"
4040
COMMENT_URL="https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments"
4141
curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X POST $COMMENT_URL -d "{\"body\":\"$COMMENT\"}"

DynamoDbEncryption/runtimes/rust/Cargo.toml

+9-9
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ readme = "README.md"
1616
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1717

1818
[dependencies]
19-
aws-config = "1.5.11"
20-
aws-lc-rs = "1.12.0"
21-
aws-lc-sys = "0.24.0"
22-
aws-sdk-dynamodb = "1.56.0"
23-
aws-sdk-kms = "1.52.0"
19+
aws-config = "1.5.15"
20+
aws-lc-rs = "1.12.2"
21+
aws-lc-sys = "0.25.0"
22+
aws-sdk-dynamodb = "1.62.0"
23+
aws-sdk-kms = "1.57.0"
2424
aws-smithy-runtime-api = {version = "1.7.3", features = ["client"] }
25-
aws-smithy-types = "1.2.10"
25+
aws-smithy-types = "1.2.12"
2626
chrono = "0.4.39"
2727
cpu-time = "1.0.0"
28-
dafny-runtime = "0.1.1"
28+
dafny_runtime = { path = "../../../submodules/smithy-dafny/TestModels/dafny-dependencies/dafny_runtime_rust", features = ["sync"] }
2929
dashmap = "6.1.0"
3030
pem = "3.0.4"
31-
tokio = {version = "1.42.0", features = ["full"] }
32-
uuid = { version = "1.11.0", features = ["v4"] }
31+
tokio = {version = "1.43.0", features = ["full"] }
32+
uuid = { version = "1.12.1", features = ["v4"] }
3333

3434
[[example]]
3535
name = "main"

DynamoDbEncryption/runtimes/rust/RELEASE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
To publish a new version of the aws-db-esdk for version N.N.N
22

3-
1. Acquire the appropriate permissions
3+
1. acquire the AWS permissions to run the tests
44
1. Ensure git checkout of main is fresh and clean
55
1. ./start_release.sh N.N.N
66
1. `cd ../../../releases/rust/db_esdk`

DynamoDbEncryption/runtimes/rust/examples/basic_get_put_example.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ use crate::test_utils;
55
use aws_sdk_dynamodb::types::AttributeValue;
66
use std::collections::HashMap;
77

8-
use aws_db_esdk::CryptoAction;
98
use aws_db_esdk::material_providers::client;
109
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
10+
use aws_db_esdk::CryptoAction;
1111

1212
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
13-
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
1413
use aws_db_esdk::intercept::DbEsdkInterceptor;
14+
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
1515
use aws_db_esdk::types::dynamo_db_tables_encryption_config::DynamoDbTablesEncryptionConfig;
1616

1717
/*

DynamoDbEncryption/runtimes/rust/examples/clientsupplier/client_supplier_example.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
use super::regional_role_client_supplier::RegionalRoleClientSupplier;
55
use crate::test_utils;
66
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
7-
use aws_db_esdk::CryptoAction;
7+
use aws_db_esdk::intercept::DbEsdkInterceptor;
88
use aws_db_esdk::material_providers::client as mpl_client;
99
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
1010
use aws_db_esdk::material_providers::types::DiscoveryFilter;
11-
use aws_db_esdk::intercept::DbEsdkInterceptor;
11+
use aws_db_esdk::CryptoAction;
1212
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1313
use aws_sdk_dynamodb::types::AttributeValue;
1414
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/clientsupplier/regional_role_client_supplier.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
// SPDX-License-Identifier: Apache-2.0
33

44
use aws_config::Region;
5+
use aws_db_esdk::com_amazonaws_kms::client::Client as kms_client;
56
use aws_db_esdk::material_providers::operation::get_client::GetClientInput;
67
use aws_db_esdk::material_providers::types::error::Error;
78
use aws_db_esdk::material_providers::types::ClientSupplier;
8-
use aws_db_esdk::com_amazonaws_kms::client::Client as kms_client;
99

1010
/*
1111
Example class demonstrating an implementation of a custom client supplier.

DynamoDbEncryption/runtimes/rust/examples/itemencryptor/item_encrypt_decrypt.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ use crate::test_utils;
55
use aws_sdk_dynamodb::types::AttributeValue;
66
use std::collections::HashMap;
77

8-
use aws_db_esdk::CryptoAction;
98
use aws_db_esdk::material_providers::client as mpl_client;
109
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
10+
use aws_db_esdk::CryptoAction;
1111

12-
use aws_db_esdk::item_encryptor::types::dynamo_db_item_encryptor_config::DynamoDbItemEncryptorConfig;
1312
use aws_db_esdk::item_encryptor::client as enc_client;
13+
use aws_db_esdk::item_encryptor::types::dynamo_db_item_encryptor_config::DynamoDbItemEncryptorConfig;
1414
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
1515

1616
/*

DynamoDbEncryption/runtimes/rust/examples/keyring/hierarchical_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ use super::branch_key_id_supplier::ExampleBranchKeyIdSupplier;
55
use crate::test_utils;
66
use aws_db_esdk::dynamodb::client as dbesdk_client;
77
use aws_db_esdk::dynamodb::types::dynamo_db_encryption_config::DynamoDbEncryptionConfig;
8+
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
9+
use aws_db_esdk::intercept::DbEsdkInterceptor;
810
use aws_db_esdk::key_store::client as keystore_client;
911
use aws_db_esdk::key_store::types::key_store_config::KeyStoreConfig;
1012
use aws_db_esdk::key_store::types::KmsConfiguration;
1113
use aws_db_esdk::material_providers::client as mpl_client;
1214
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
13-
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
1415
use aws_db_esdk::CryptoAction;
15-
use aws_db_esdk::intercept::DbEsdkInterceptor;
1616
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1717
use aws_sdk_dynamodb::types::AttributeValue;
1818
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/keyring/kms_rsa_keyring.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
99
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
10-
use aws_db_esdk::intercept::DbEsdkInterceptor;
10+
use aws_db_esdk::CryptoAction;
1111
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1212
use aws_sdk_dynamodb::types::AttributeValue;
1313
use std::collections::HashMap;
1414
use std::fs::File;
1515
use std::io::Read;
1616
use std::io::Write;
1717
use std::path::Path;
18-
18+
1919
/*
2020
This example sets up DynamoDb Encryption for the AWS SDK client
2121
using the KMS RSA Keyring. This keyring uses a KMS RSA key pair to

DynamoDbEncryption/runtimes/rust/examples/keyring/mrk_discovery_multi_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
99
use aws_db_esdk::material_providers::types::DiscoveryFilter;
10-
use aws_db_esdk::intercept::DbEsdkInterceptor;
10+
use aws_db_esdk::CryptoAction;
1111
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1212
use aws_sdk_dynamodb::types::AttributeValue;
1313
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/keyring/multi_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
99
use aws_db_esdk::material_providers::types::AesWrappingAlg;
10-
use aws_db_esdk::intercept::DbEsdkInterceptor;
10+
use aws_db_esdk::CryptoAction;
1111
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1212
use aws_sdk_dynamodb::types::AttributeValue;
1313
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/keyring/multi_mrk_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
9-
use aws_db_esdk::intercept::DbEsdkInterceptor;
9+
use aws_db_esdk::CryptoAction;
1010
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1111
use aws_sdk_dynamodb::types::AttributeValue;
1212
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/keyring/raw_aes_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
99
use aws_db_esdk::material_providers::types::AesWrappingAlg;
10-
use aws_db_esdk::intercept::DbEsdkInterceptor;
10+
use aws_db_esdk::CryptoAction;
1111
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1212
use aws_sdk_dynamodb::types::AttributeValue;
1313
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/keyring/raw_rsa_keyring.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
use crate::test_utils;
55
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
6-
use aws_db_esdk::CryptoAction;
6+
use aws_db_esdk::intercept::DbEsdkInterceptor;
77
use aws_db_esdk::material_providers::client as mpl_client;
88
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
99
use aws_db_esdk::material_providers::types::PaddingScheme;
10-
use aws_db_esdk::intercept::DbEsdkInterceptor;
10+
use aws_db_esdk::CryptoAction;
1111
use aws_db_esdk::DynamoDbTablesEncryptionConfig;
1212
use aws_sdk_dynamodb::types::AttributeValue;
1313
use std::collections::HashMap;

DynamoDbEncryption/runtimes/rust/examples/multi_get_put_example.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ use crate::test_utils;
55
use aws_sdk_dynamodb::types::AttributeValue;
66
use std::collections::HashMap;
77

8-
use aws_db_esdk::CryptoAction;
98
use aws_db_esdk::material_providers::client;
109
use aws_db_esdk::material_providers::types::material_providers_config::MaterialProvidersConfig;
10+
use aws_db_esdk::CryptoAction;
1111

1212
use aws_db_esdk::dynamodb::types::DynamoDbTableEncryptionConfig;
13-
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
1413
use aws_db_esdk::intercept::DbEsdkInterceptor;
14+
use aws_db_esdk::material_providers::types::DbeAlgorithmSuiteId;
1515
use aws_db_esdk::types::dynamo_db_tables_encryption_config::DynamoDbTablesEncryptionConfig;
1616

1717
/*

0 commit comments

Comments
 (0)