21 个不稳定版本 (10 个破坏性更新)
0.10.0 | 2020 年 9 月 6 日 |
---|---|
0.9.0 | 2020 年 7 月 14 日 |
0.8.2 | 2020 年 6 月 4 日 |
0.7.0 | 2019 年 11 月 3 日 |
0.1.3 | 2018 年 3 月 8 日 |
#758 在 数据库接口 中
每月 59 次下载
用于 sim1h
80KB
2K SLoC
🦀🧨
dynomite
dynomite 让 DynamoDB 更适合您的类型(反之亦然)
概述
目标
- ⚡ 在 dynamodb 应用程序中使用 rust 编写应用程序,这是一种富有成效的体验
- 🦀 利用 rust 的类型安全特性
- 👩💻 利用 rusoto rust 项目的现有工作
- ☔ 承诺支持使用稳定 rust 构建的应用程序
- 📚 承诺编写文档
功能
- 💌 减少样板代码
- ♻️ 自动异步分页
- 🕶️ 为 robust error handling 提供客户端级别的重试接口
从这里
use std::collections::HashMap;
use rusoto_dynamodb::AttributeValue;
use uuid::Uuid;
let mut item = HashMap.new();
item.insert(
"pk".to_string(), AttributeValue {
s: Some(Uuid::new_v4().to_hyphenated().to_string()),
..AttributeValue::default()
}
);
item.insert(
// 🤬typos anyone?
"quanity".to_string(), AttributeValue {
n: Some("whoops".to_string()),
..AttributeValue::default()
}
);
到那里
use dynomite::Item;
use uuid::Uuid;
#[derive(Item)]
struct Order {
#[dynomite(partition_key)]
pk: Uuid,
quantity: u16
}
let item = Order {
pk: Uuid::new_v4(),
quantity: 4
}.into();
请参阅 API 文档 了解如何开始。祝您享受。
📦 安装
在您的 Cargo.toml 文件中,在 [dependencies]
标题下添加以下内容
dynomite = "0.10"
🤸 示例
您可以在 dynomite/examples 下找到一些示例应用程序代码
DynamoDB 本地
AWS 提供了一种方便的方式,通过 DynamoDB local 来托管本地实例进行测试。
以下是一个使用 dynomite 和 rusoto_dynamodb
快速启动本地测试的简单示例。
在另一个终端中,启动一个 Docker 容器,用于 DynamoDB local,监听端口 8000
$ docker run --rm -p 8000:8000 amazon/dynamodb-local
然后,运行一个 rust 二进制文件,客户端初始化方式与您在 local.rs 示例 中看到的方式相同
资源
Doug Tangren (softprops) 2018-2020
依赖项
~16–22MB
~386K SLoC