Skip to content

Commit 6dc1a0a

Browse files
committed
m
1 parent 4a96226 commit 6dc1a0a

File tree

1 file changed

+40
-20
lines changed
  • DynamoDbEncryption/runtimes/rust/src

1 file changed

+40
-20
lines changed
Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,51 @@
1-
# AWS Database Encryption SDK for DynamoDB
1+
## Building the AWS Database Encryption SDK for DynamoDB
22

3-
[![build status](https://github.com/aws/aws-database-encryption-sdk-dynamodb/actions/workflows/daily_ci.yml/badge.svg?branch=main)](https://github.com/aws/aws-database-encryption-sdk-dynamodb/actions/workflows/daily_ci.yml)
4-
[![crates.io](https://img.shields.io/crates/v/aws-db-esdk.svg)](https://crates.io/crates/aws-db-esdk)
5-
[![docs](https://docs.rs/aws-db-esdk/badge.svg)](https://docs.rs/aws-db-esdk)
6-
[![rustc](https://img.shields.io/badge/rust-1.81%2B-orange.svg)](https://img.shields.io/badge/rust-1.81%2B-orange.svg)
3+
To build, the AWS Database Encryption SDK for DynamoDB requires the most up to date version of [Dafny](https://github.com/dafny-lang/dafny) on your PATH.
74

8-
This is the official [AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Rust](https://crates.io/crates/aws-db-esdk).
5+
You will also need to ensure that you fetch all submodules using either `git clone --recursive ...` when cloning the repository or `git submodule update --init` on an existing clone.
96

10-
## [CHANGELOG](https://github.com/aws/aws-database-encryption-sdk-dynamodb/blob/main/CHANGELOG.md)
7+
To setup your project to use the AWS Database Encryption SDK for DynamoDB in Rust, run:
118

12-
## Overview
9+
```
10+
cd DynamoDbEncryption
11+
# Polymorph smithy to Rust
12+
make polymorph_rust
13+
# Transpile Dafny to Rust
14+
make transpile_rust
15+
# Build Project
16+
cd runtimes/rust
17+
cargo build
18+
```
1319

14-
The AWS Database Encryption SDK (DB-ESDK) for DynamoDB is a client-side encryption
15-
library that allows you to perform attribute-level encryption, enabling you to encrypt specific
16-
attribute values within items before storing them in your DynamoDB table. All encryption and
17-
decryption are performed within your application. This lets you protect sensitive data in-transit
18-
and at-rest, as data cannot be exposed unless decrypted by your application.
20+
### (Optional) Set up the AWS Database Encryption SDK for DynamoDB to work with AWS KMS
1921

20-
For more details about the design and architecture of the DB-ESDK for DynamoDB,
21-
see the [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/).
22+
If you set up the AWS Database Encryption SDK for DynamoDB to use the AWS KMS Keyring,
23+
the AWS Database Encryption SDK for DynamoDB will make calls to AWS KMS on your behalf,
24+
using the appropriate AWS SDK.
2225

23-
## Examples for AWS Database Encryption SDK in Rust
26+
However, you must first set up AWS credentials for use with the AWS SDK.
2427

25-
Please look at the Examples on how to use the AWS Database Encryption SDK in Rust [here](https://github.com/aws/aws-database-encryption-sdk-dynamodb/tree/main/releases/rust/db_esdk/examples).
28+
## Testing the AWS Database Encryption SDK for DynamoDB for Rust
2629

27-
Please note that some examples MAY require internet access and valid AWS credentials, since calls to KMS are made.
30+
### Configure AWS credentials
2831

29-
## License
32+
To run the test suite you must first set up AWS credentials for use with the AWS SDK.
33+
This is required in order to run the integration tests, which use a KMS Keyring against a publicly accessible KMS CMK.
3034

31-
This library is licensed under the Apache 2.0 License.
35+
### Run the tests
36+
37+
Run the test suite with:
38+
39+
```
40+
cd DynamoDbEncryption
41+
make test_rust
42+
```
43+
44+
Run tests on examples, to ensure they are up to date:
45+
46+
```
47+
cd DynamoDbEncryption/runtimes/rust/
48+
cargo test --examples
49+
```
50+
51+
Please note that tests require internet access and valid AWS credentials, since calls to KMS and DynamoDB are made as part of the workflow.

0 commit comments

Comments
 (0)