Hildebrand

Asynchronous DynamoDB client for Clojure & Clojurescript/Node
Alternatives To Hildebrand
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Examples10,749
a day ago19April 25, 2021167otherJavaScript
Serverless Examples – A collection of boilerplates and examples of serverless architectures built with the Serverless Framework on AWS Lambda, Microsoft Azure, Google Cloud Functions, and more.
Serverless Express4,77666015910 days ago33December 06, 2020132apache-2.0JavaScript
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, [email protected], and ALB.
Aws Sdk Js V32,24042712 hours ago156September 27, 2022328apache-2.0TypeScript
Modularized AWS SDK for JavaScript.
Dynamoose1,97181819 days ago119September 04, 202292unlicenseJavaScript
Dynamoose is a modeling tool for Amazon's DynamoDB
Dazn Lambda Powertools703122 months ago17May 04, 202181mitJavaScript
Powertools (logger, HTTP client, AWS clients, middlewares, patterns) for Lambda functions.
Fhir Works On Aws Deployment281
a month ago53apache-2.0TypeScript
A serverless implementation of the FHIR standard that enables users to focus more on their business needs/uniqueness rather than the FHIR specification
Aws Nestjs Starter255
a day ago6unlicenseTypeScript
Serverless, AWS, NestJS, GraphQL and DynamoDB starter
Fullstack App253
2 years ago12JavaScript
⚡ Ready-to-use, serverless, full-stack application built with AWS Lambda, Express.js, React, AWS DynamoDB and AWS HTTP API.
Nx Serverless246
8 months ago5mitTypeScript
🚀 The Ultimate Monorepo Starter for Node.js Serverless Applications
Dialetus Service235
7 months ago1mitJavaScript
API to Informal dictionary for the idiomatic expressions that each Brazilian region It has
Alternatives To Hildebrand
Select To Compare


Alternative Project Comparisons
Readme

Hildebrand Build Status

Clojars Project

Hildebrand is a high-level client for Amazon's Dynamo DB, built on top of Eulalie.

Documentation

  • The API introduction on the wiki is a good place to start.
  • Introducing Hildebrand, a blog post, has a bunch of usage examples in it. The namespace layout has changed since (hildebrand -> hildebrand.core)

Examples

Querying

(require '[hildebrand.channeled :refer [query!]])

(async/into []
  (query! creds :games
          {:user-id [:= "moea"]}
          {:filter [:< [:score] 50]
           :sort :desc
           :limit 10}
          {:chan (async/chan 10 (map :score))}))
;; => [15 10]

Querying + Batched Deletes

(require '[hildebrand.channeled :refer [query! batching-deletes]])

(let [[results errors]
      (->> (query! creds :games
                   {:user-id [:= "moea"]
                    :game-title [:begins-with "Super"]}
                   {:filter [:< [:score] 100]
                    :limit  100})
           (async/split map?))
      {delete-chan :in-chan} (batching-deletes creds {:table :games})]
  (async/pipe results delete-chan))

Clojurescript

All of the functionality (barring the synchronous convenience functions) is exposed via Clojurescript. The implementation specifically targets Node, and uses lein-npm for declaring its dependency on bignumber.js. The wiki contains more information about number handling, which is the only substantial difference from the Clojure implementation.

The specific use-case I had in mind for Node support is writing AWS Lambda functions in Clojurescript.

See the Eulalie README for other Node-relevant details.

Development

Most of the integration tests expect an instance of DynamoDB Local. If the LOCAL_DYNAMO_URL environment variable isn't set, those tests will be skipped.

A couple of the tests expect to get capacity information back from Dynamo, and so can't run against a local instance. If AWS_ACCESS_KEY and AWS_SECRET_KEY are set, these tests'll try to connect and interact with a table (in Dynamo's default region, us-east-1).

Assuming a local Node install, lein cljsbuild once test-none will run the Clojurescript tests. test-advanced will run the tests under :optimizations :advanced.

Contributions welcomed.

See Also

  • Faraday - An excellent, synchronous Dynamo client built on the official AWS client library. Hildebrand's approach to type handling was largely copied from Faraday.

License

hildebrand is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.

Popular Dynamodb Projects
Popular Nodejs Projects
Popular Data Storage Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Node
Aws
Clojure
Dynamodb
Clojurescript