All Projects → timkendall → crynamo

timkendall / crynamo

Licence: MIT License
DynamoDB client for Crystal.

Programming Languages

crystal
512 projects

Projects that are alternatives of or similar to crynamo

notes-yard-frontend
Its an application to create notes and notebooks
Stars: ✭ 34 (+142.86%)
Mutual labels:  dynamodb
serverless-dynamodb-ttl
⚡️ Serverless Plugin to set DynamoDB TTL
Stars: ✭ 16 (+14.29%)
Mutual labels:  dynamodb
FPL
Fortran Parameter List. A fortran dictionary where to put the parameters of your application.
Stars: ✭ 29 (+107.14%)
Mutual labels:  object-oriented
home-energy-monitor
ESP32-based Home Energy Monitor
Stars: ✭ 152 (+985.71%)
Mutual labels:  dynamodb
telegram-stepfunctions-bot
Serverless Telegram bot made on 4 AWS Lambda chained by AWS Step Functions. All of this written on Serverless Framework using plugins.
Stars: ✭ 26 (+85.71%)
Mutual labels:  dynamodb
configmanager
Forget about configparser, YAML, or JSON parsers. Focus on configuration. NOT RECOMMENDED FOR USE (2019-01-26)
Stars: ✭ 15 (+7.14%)
Mutual labels:  object-oriented
snap
Snap Programming Language
Stars: ✭ 20 (+42.86%)
Mutual labels:  object-oriented
twitter
A serverless social network that's under development with some cool stuff, such as Serverless Framework, AppSync, GraphQL, Lambda, DynamoDB, Cognito, Kinesis Firehose, and Algolia ☁️
Stars: ✭ 29 (+107.14%)
Mutual labels:  dynamodb
serverless-todo-demo
Serverless todo web app demo
Stars: ✭ 64 (+357.14%)
Mutual labels:  dynamodb
super-serverless-sample
Backend serverless que simula o sistema de votação do BBB
Stars: ✭ 30 (+114.29%)
Mutual labels:  dynamodb
terraform-aws-lambda
A Terraform module to create AWS Lambda ressources.
Stars: ✭ 40 (+185.71%)
Mutual labels:  dynamodb
decaf-rs
The Decaf compiler, written in Rust
Stars: ✭ 43 (+207.14%)
Mutual labels:  object-oriented
star
An experimental programming language that's made to be powerful, productive, and predictable
Stars: ✭ 88 (+528.57%)
Mutual labels:  object-oriented
venus
OO Standard Library for Perl 5
Stars: ✭ 14 (+0%)
Mutual labels:  object-oriented
graphql-pynamodb
Graphene PynamoDB Integration
Stars: ✭ 63 (+350%)
Mutual labels:  dynamodb
aws-nestjs-starter
Serverless, AWS, NestJS, GraphQL and DynamoDB starter
Stars: ✭ 200 (+1328.57%)
Mutual labels:  dynamodb
dynamodb-paginator
Paginate DynamoDB results easily
Stars: ✭ 18 (+28.57%)
Mutual labels:  dynamodb
iis
开源微博平台 Open source cloud powered microblog
Stars: ✭ 42 (+200%)
Mutual labels:  dynamodb
hyper-kube-config
H Y P E R K U B E - A Serverless API and kubectl plugin providing a storage and retrieval Kubernetes cluster credentials. Hyperkube leverages AWS Secrets Manager for storing credential information.
Stars: ✭ 27 (+92.86%)
Mutual labels:  dynamodb
amazon-kinesis-archiver
An AWS Lambda module and node.js library to facilitate Amazon Kinesis archival and replay
Stars: ✭ 29 (+107.14%)
Mutual labels:  dynamodb

Crynamo

Build Status GitHub release

Crynamo is a simple interface to Amazon's DynamoDB written in Crystal. Right now it is a fairly low-level wrapper that provides type marshalling between your Crystal program and DynamoDB.

  • ✔️ Simple API with get, put, and delete support
  • ✔️ DynamoDB type marshalling
  • ✔️ Native exceptions for every AWS error
  • ✔️ Non-blocking

Installation

Add this to your application's shard.yml:

dependencies:
  crynamo:
    github: timkendall/crynamo
    version: ~> 0.1.1

Usage

  1. Configuration
  2. Client

Configuration

require "crynamo"

config = Crynamo::Configuration.new(
  access_key_id: "aws-access-key",
  secret_access_key: "aws-secret-key",
  region: "us-east-1",
  endpoint: "http://localhost:8000",
)
dynamodb = Crynamo::Client.new(config)

Client

Crynamo exposes Crynamo::Client as a basic DynamoDB client. The client's API is low-level and mimics the base DynamoDB Low-Level HTTP API.

# Get an item
dynamodb.get!("pets", { name: "Doobie" })

# Insert an item
dynamodb.put!("pets", { name: "Thor", lifespan: 100 })

# Remove an item
dynamodb.delete!("pets", { name: "Doobie" })

Development

  1. Follow the instructions here to setup Local DynamoDB
  2. Install Crystal deps with shards install
  3. Use icr to play with things

Tip

It's useful to define a bash command for launching DynamoDB. Add this to your .bash_profile to start DynamoDB with a simple dynamodb command.

dynamodb() {
 cd /path/to/dynamodb
 java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
}

Contributing

  1. Fork it ( https://github.com/[your-github-name]/crynamo/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

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].