[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 * [serde_dynamo on crates.io](https://crates.io/crates/serde_dynamo) * [serde_dynamo on docs.rs](https://docs.rs/serde_dynamo) * [serde_dynamo on GitHub](https://github.com/zenlist/serde_dynamo) ## Features Support for [aws-sdk-dynamodb], [aws_lambda_events], and [rusoto_dynamodb] is provided via features. See [the docs](https://docs.rs/serde_dynamo) for more details. ## Examples See [the docs](https://docs.rs/serde_dynamo) 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".to_string(), name: "Arthur Dent".to_string(), age: 42, }; // Turn it into an item that aws-sdk-dynamodb understands let item = to_item(user)?; // And write it! client.put_item().table_name("users").set_item(Some(item)).send().await?; ``` [DynamoDB]: https://aws.amazon.com/dynamodb/ [serde]: https://serde.rs [aws-sdk-dynamodb]: https://docs.rs/aws-sdk-dynamodb [rusoto_dynamodb]: https://docs.rs/rusoto_dynamodb [aws_lambda_events]: https://docs.rs/aws_lambda_events