All Projects → softprops → Dynomite

softprops / Dynomite

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

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Dynomite

Dynein
DynamoDB CLI written in Rust.
Stars: ✭ 126 (-12.5%)
Mutual labels:  aws, nosql, dynamodb
Dynamodb Toolbox
A simple set of tools for working with Amazon DynamoDB and the DocumentClient
Stars: ✭ 752 (+422.22%)
Mutual labels:  aws, nosql, dynamodb
Jedlik
DynamoDB ODM for Node
Stars: ✭ 100 (-30.56%)
Mutual labels:  aws, dynamodb
Autopush Rs
Push Connection Node in Rust
Stars: ✭ 101 (-29.86%)
Mutual labels:  aws, dynamodb
Pynamodb
A pythonic interface to Amazon's DynamoDB
Stars: ✭ 1,787 (+1140.97%)
Mutual labels:  aws, dynamodb
Serverless Dynamodb Autoscaling
Serverless Plugin for Amazon DynamoDB Auto Scaling configuration.
Stars: ✭ 142 (-1.39%)
Mutual labels:  aws, dynamodb
Aws Cli Cheatsheet
☁️ AWS CLI + JQ = Make life easier
Stars: ✭ 94 (-34.72%)
Mutual labels:  aws, dynamodb
Dynamodb Json
DynamoDB json util to load and dump strings of Dynamodb json format to python object and vise-versa
Stars: ✭ 114 (-20.83%)
Mutual labels:  aws, dynamodb
Moviesapp
React Native Movies App: AWS Amplify, AWS AppSync, AWS Cognito, GraphQL, DynamoDB
Stars: ✭ 78 (-45.83%)
Mutual labels:  aws, dynamodb
Flywheel
Object mapper for Amazon's DynamoDB
Stars: ✭ 124 (-13.89%)
Mutual labels:  aws, dynamodb
Dql
A SQL-ish language for DynamoDB
Stars: ✭ 141 (-2.08%)
Mutual labels:  aws, dynamodb
Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+6771.53%)
Mutual labels:  aws, dynamodb
This Or That
This or that - Real-time atomic voting app built with AWS Amplify
Stars: ✭ 87 (-39.58%)
Mutual labels:  aws, dynamodb
Diamondb
[WIP] DiamonDB: Rebuild of time series database on AWS.
Stars: ✭ 98 (-31.94%)
Mutual labels:  aws, dynamodb
Historical
A serverless, event-driven AWS configuration collection service with configuration versioning.
Stars: ✭ 85 (-40.97%)
Mutual labels:  aws, dynamodb
Npdynamodb
A Node.js Simple Query Builder and ORM for AWS DynamoDB
Stars: ✭ 113 (-21.53%)
Mutual labels:  aws, dynamodb
Dynamo Easy
DynamoDB client for NodeJS and browser with a fluent api to build requests. We take care of the type mapping between JS and DynamoDB, customizable trough typescript decorators.
Stars: ✭ 133 (-7.64%)
Mutual labels:  aws, dynamodb
Go Dynamock
Amazon Dynamo DB Mock Driver for Golang to Test Database Interactions
Stars: ✭ 71 (-50.69%)
Mutual labels:  nosql, dynamodb
Lambda Refarch Webapp
The Web Application reference architecture is a general-purpose, event-driven, web application back-end that uses AWS Lambda, Amazon API Gateway for its business logic. It also uses Amazon DynamoDB as its database and Amazon Cognito for user management. All static content is hosted using AWS Amplify Console.
Stars: ✭ 1,208 (+738.89%)
Mutual labels:  aws, dynamodb
Full Stack Serverless Cdk
Learn to Build Full-Stack Serverless Apps and APIs using AWS Cloud Development Kit (CDK) in Baby Steps.
Stars: ✭ 122 (-15.28%)
Mutual labels:  aws, dynamodb
🦀🧨

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].