/fake_dynamo

local hosted, inmemory Amazon DynamoDB emulator.

Primary LanguageRubyMIT LicenseMIT

FakeDynamo Build Status

local hosted, inmemory Amazon DynamoDB emulator.

Versions

Amazon DynamoDB API version FakeDynamo gem version
2012-08-10 0.2.4
2011-12-05 0.1.3

Caveats

  • ConsumedCapacityUnits value will be 1 always.

Usage

requires ruby >= 1.9

gem install fake_dynamo --version 0.2.3

fake_dynamo --port 4567

send a DELETE request to reset the database. eg

curl -X DELETE http://localhost:4567

Clients

AWS.config(:use_ssl => false,
           :dynamo_db_endpoint => 'localhost',
           :dynamo_db_port => 4567,
           :access_key_id => "xxx",
           :secret_access_key => "xxx")
 AWS.config.update({apiVersion:      "2012-08-10",
                    sslEnabled:      false,
                    endpoint:        "localhost:4567",
                    accessKeyId:     "xxx",
                    secretAccessKey: "xxx",
                    region:          "xxx"});
AWSCredentials credentials = new BasicAWSCredentials("xxx", "xxx");
AmazonDynamoDB client = new AmazonDynamoDBClient(credentials);
client.setEndpoint("http://localhost:4567");

please open a pull request with your configuration if you are using fake_dynamo with clients other than the ones mentioned above.

Storage

fake_dynamo stores the write operations (request that changes the data) in /usr/local/var/fake_dynamo/db.fdb and replays it before starting the server. Because of the way fake_dynamo stores the data, file size tend to grow by time. so fake_dynamo will compact the database during start up if the file size is greater than 100mb. you can manually compact it by passing --compact flag.