#dynamo-db #rusoto #rusoto-dynamodb

dynomite-derive

从原生Rust结构体类型推导AWS DynamoDB dynomite类型

21个不稳定版本 (9个破坏性更新)

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日

#10 in #dynamodb

Download history 15/week @ 2024-04-08 13/week @ 2024-04-15 19/week @ 2024-04-22 18/week @ 2024-04-29 16/week @ 2024-05-06 16/week @ 2024-05-13 26/week @ 2024-05-20 14/week @ 2024-05-27 22/week @ 2024-06-03 12/week @ 2024-06-10 13/week @ 2024-06-17 22/week @ 2024-06-24 36/week @ 2024-07-01 2/week @ 2024-07-08 13/week @ 2024-07-15 9/week @ 2024-07-22

每月63次下载
用于 dynomite

MIT 许可证

24KB
461 代码行

🦀🧨

dynomite

dynomite使DynamoDB适合您的类型(反之亦然)


概述

目标

  • ⚡ 在Rust中编写dynamodb应用程序是一种高效体验
  • 🦀 利用Rust的类型安全功能
  • 👩‍💻 利用rusoto Rust项目的现有工作
  • ☔ 承诺支持使用稳定Rust构建的应用程序
  • 📚 承诺编写文档

功能

  • 💌 更少的样板代码
  • ♻️ 自动异步分页
  • 🕶️ 客户端级别的重试接口,用于健壮的错误处理

从这

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.rs示例以及rusoto_dynamodb在本地快速启动测试的简短示例。

在其中一个终端中启动一个监听在端口8000DynamoDB local Docker容器

$ docker run --rm -p 8000:8000 amazon/dynamodb-local

在另一个终端中,运行一个初始化客户端的二进制文件,就像您在local.rs示例中看到的那样

资源

Doug Tangren (softprops) 2018-2020

依赖项

~1.5MB
~36K SLoC