Liking cljdoc? Tell your friends :D

clj-dynamodb-local Build Status

A Leiningen 2 plugin and boot task providing a local DynamoDB instance to run tests against.

This starts an instance of DynamoDB Local ( provided by Amazon and shuts it down once any proceeding tasks have completed. DynamoDB Local is downloaded on first run, and stored in ~/.clj-dynamodb-local.


Clojars Project


Add this library as a dependency to the :plugins vector of your project.clj.

You can start DynamoDB Local, followed by any other tasks you may want to run, using the following:

$ lein dynamodb-local other-tasks...

The plugin will shutdown DynamoDB Local upon completion.

DynamoDB Local can be started without running any other tasks if you so wish:

$ lein dynamodb-local

Killing the process (e.g. with Ctrl+C) will shutdown DynamoDB Local.

If run as a background process (e.g. $ lein dynamodb-local &) all child processes should be terminated upon completion (e.g. pkill -P parent-process-id). The plugin will handle the termination of the DynamoDB Local process.


Add this library as a dependency to your build.boot file.

require the boot namespace and task provided in the appropriate place in your build.boot:

'[dynamodb-local.boot :refer [dynamodb-local]]

Add the dynamodb-local boot task into your build pipeline at the appropriate point, supplying any required options, for example:

(deftask development []
  (comp (testing)
        (dynamodb-local :project {:dynamodb-local {:port 8090
                                                   :in-memory? true}})

A shutdown hook will be added to shutdown DynamoDB Local when the JVM exits.


You can set some parameters by adding the :dynamodb-local keyword to your project.clj.


Set the port that you want DynamoDB Local to run on (defaults to 8000).

:dynamodb-local {:port 12345}

It is also possible to set the port by using the environment variable DYNAMODB_PORT.


Set if you want DynamoDB Local to be run in memory (defaults to false).

Note: This should not be used in conjunction with the :db-path parameter. If it is, :db-path will be ignored.

:dynamodb-local {:in-memory? true}


Set if you want DynamoDB Local use a shared db rather than have separate files for each region/credentials combo. See the -sharedDb switch documented here for more info.

:dynamodb-local {:shared-db? true}


Set the path that DynamoDB Local will write its database file to (defaults to ./.clj-dynamodb-local). If a relative path is used, it will be relative to the current directory.

Note: This should not be used in conjunction with the :in-memory? parameter. If it is, :db-path will be ignored.

:dynamodb-local {:db-path "/path/to/desired/db/output/"}


Pass JVM options to the DynamoDB process. Behaves the same as the 'normal' :jvm-opts in a project.clj

:dynamodb-local {:jvm-opts ["-server" "-Xmx512m"]}


Copyright © 2018 Donovan McGillen

Distributed under the Eclipse Public License, the same as Clojure.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close