Need help with dynomite?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

softprops
139 Stars 25 Forks MIT License 405 Commits 25 Opened issues

Description

⚡🦀 🧨 make your rust types fit DynamoDB and visa versa

Services available

!
?

Need anything else?

Contributors list

🦀🧨

dynomite

dynomite makes DynamoDB fit your types (and visa versa)


Overview

Goals

  • ⚡ make writing dynamodb applications in rust a productive experience
  • 🦀 exploit rust's type safety features
  • 👩‍💻 leverage existing work of the rusoto rust project
  • ☔ commitment to supporting applications built using stable rust
  • 📚 commitment to documentation

Features

  • 💌 less boilerplate
  • ♻️ automatic async pagination
  • 🕶️ client level retry interfaces for robust error handling

From this

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() } );

To this

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();

Please see the API documentation for how to get started. Enjoy.

📦 Install

In your Cargo.toml file, add the following under the

[dependencies]
heading
dynomite = "0.10"

🤸 Examples

You can find some example application code under dynomite/examples

DynamoDB local

AWS provides a convenient way to host a local instance of DynamoDB for testing.

Here is a short example of how to get up a testing locally quickly with both dynomite as well as

rusoto_dynamodb
.

In one terminal spin up a Docker container for DynamoDB local listening on port

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

In another, run a rust binary with a client initialized like you see the the local.rs example

Resources

Doug Tangren (softprops) 2018-2020

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.