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

139 Stars 25 Forks MIT License 405 Commits 25 Opened issues


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

Services available


Need anything else?

Contributors list



dynomite makes DynamoDB fit your types (and visa versa)



  • ⚡ 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


  • 💌 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 =; 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

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


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

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

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


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.