#dynamo-db #aws-sdk #serde #rusoto #aws-lambda #serde-dynamodb

serde_dynamo

支持 aws-sdk-dynamodb、aws_lambda_events 和 rusoto_dynamodb 的 serde 序列化和反序列化器,用于 DynamoDB 项目

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编码 中排名

Download history 21037/week @ 2024-04-18 18719/week @ 2024-04-25 17018/week @ 2024-05-02 17104/week @ 2024-05-09 17458/week @ 2024-05-16 18578/week @ 2024-05-23 20188/week @ 2024-05-30 19536/week @ 2024-06-06 19290/week @ 2024-06-13 16359/week @ 2024-06-20 16526/week @ 2024-06-27 15776/week @ 2024-07-04 16155/week @ 2024-07-11 16984/week @ 2024-07-18 18046/week @ 2024-07-25 18396/week @ 2024-08-01

72,711 每月下载量
8 个 crate 中使用 (6 个直接使用)

MIT 许可证

290KB
5.5K SLoC

DynamoDB 是一个 AWS 数据库,用于存储键/值和文档数据。

serde_dynamo 提供了一种将存储在这些项目中的数据和强类型 Rust 数据结构之间进行序列化和反序列化的方法。

你可能还在找

功能

通过功能提供对 aws-sdk-dynamodbaws_lambda_eventsrusoto_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