[DynamoDB] is an AWS database that stores key/value and document data.

serde_dynamo provides a way to serialize and deserialize between data stored in these items and strongly-typed Rust data structures.

You may be looking for

Features

Support for [aws-sdk-dynamodb], [awslambdaevents], and [rusoto_dynamodb] is provided via features. See the docs for more details.

Examples

See the docs for more examples.

Parsing items as strongly-typed data structures.

Items received from a [aws-sdk-dynamodb] call can be run through from_items.

```rust

[derive(Serialize, Deserialize)]

pub struct User { id: String, name: String, age: u8, };

// Get documents from DynamoDB let result = client.scan().table_name("user").send().await?;

// And deserialize them as strongly-typed data structures if let Some(items) = result.items { let users: Vec = from_items(items)?; println!("Got {} users", users.len()); } ```

Alternatively, to deserialize one item at a time, from_item can be used.

rust for item in result.items.unwrap() { let user: User = from_item(item)?; println!("{} is {}", user.name, user.age); }

Creating items by serializing data structures

Writing an entire data structure to DynamoDB typically involves using to_item to serialize it.

```rust

[derive(Serialize, Deserialize)]

pub struct User { id: String, name: String, age: u8, };

// Create a user let user = User { id: "fSsgVtal8TpP".tostring(), name: "Arthur Dent".tostring(), age: 42, };

// Turn it into an item that aws-sdk-dynamodb understands let item = to_item(user)?;

// And write it! client.putitem().tablename("users").set_item(Some(item)).send().await?; ```