βš‘πŸ¦€ 🧨 make your rust types fit dynamodb and visa versa
Clone or download
Latest commit c832e50 Dec 7, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github style Oct 11, 2018
dynomite-derive update codegen deps Dec 6, 2018
dynomite update codegen deps Dec 6, 2018
.gitignore publishing requires creating a target dir in each workspace crate Feb 25, 2018
.travis.yml temp disable style checking Dec 5, 2018
CHANGELOG.md update rusoto and uuid deps Dec 5, 2018
CONTRIBUTING.md process Oct 11, 2018
Cargo.toml sketch Feb 21, 2018
LICENSE sketch Feb 21, 2018
README.md add dynamodb local example Oct 11, 2018
rustfmt.toml update codegen deps Dec 6, 2018

README.md

dynomite Build Status Coverage Status Software License crates.io Released API docs Master API docs

dynomite makes rusoto_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

Please see API documentation for how to get started

πŸ“¦ Install

In your Cargo.toml file, add the following under the [dependencies] heading

dynomite = "0.1"

Optionally, you can install a companion crate which allows you to derive dynomite types for your structs at compile time (recommended)

dynomite-derive = "0.1"

🀸 Examples

You can find some example application code under dynomite-derive/examples

Dynamodb local

AWS provides a convient 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

🚧 Planned work

  • retryable extensions to rusto's client based on retryable errors
  • derive Attribute for enum types allowing for dynamodb items to have enumerable values

πŸ€” Alternatives

The korat crate was the the original inspiration for this crate. It's focus is very similar but fell short on a few accounts. It does not work on stable rust and it's api is not documented. Dynomite intends to build on similar features as well as build out others.

Doug Tangren (softprops) 2018