41 个稳定版本 (3 个主要版本)
4.2.14 | 2024年4月1日 |
---|---|
4.2.13 | 2023年11月27日 |
4.2.7 | 2023年10月10日 |
4.2.3 | 2023年5月24日 |
1.0.0 | 2020年12月21日 |
#184 在 编码 中排名
72,711 每月下载量
在 8 个 crate 中使用 (6 个直接使用)
290KB
5.5K SLoC
DynamoDB 是一个 AWS 数据库,用于存储键/值和文档数据。
serde_dynamo 提供了一种将存储在这些项目中的数据和强类型 Rust 数据结构之间进行序列化和反序列化的方法。
你可能还在找
功能
通过功能提供对 aws-sdk-dynamodb、aws_lambda_events 和 rusoto_dynamodb 的支持。有关更多详细信息,请参阅文档。
示例
有关更多示例,请参阅文档。
将项目作为强类型数据结构解析
从 aws-sdk-dynamodb 调用中接收到的项目可以通过 from_items
运行。
#[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<User> = from_items(items)?;
println!("Got {} users", users.len());
}
或者,为了逐个反序列化项目,可以使用 from_item
。
for item in result.items.unwrap() {
let user: User = from_item(item)?;
println!("{} is {}", user.name, user.age);
}
通过序列化数据结构创建项目
将整个数据结构写入 DynamoDB 通常需要使用 to_item
进行序列化。
#[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?;
依赖项
~0.3–16MB
~197K SLoC