{"id":13516052,"url":"https://github.com/architect/dynalite","last_synced_at":"2025-05-14T20:04:39.754Z","repository":{"id":8986301,"uuid":"10733511","full_name":"architect/dynalite","owner":"architect","description":"An implementation of Amazon's DynamoDB built on LevelDB","archived":false,"fork":false,"pushed_at":"2025-01-28T21:46:26.000Z","size":22380,"stargazers_count":1050,"open_issues_count":47,"forks_count":110,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-05-02T23:19:13.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/architect.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":".github/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mhart"}},"created_at":"2013-06-17T08:54:51.000Z","updated_at":"2025-05-02T00:03:24.000Z","dependencies_parsed_at":"2023-08-22T18:07:02.206Z","dependency_job_id":"95f0c922-c44b-48f3-9d34-1b7a9709018b","html_url":"https://github.com/architect/dynalite","commit_stats":null,"previous_names":["mhart/dynalite"],"tags_count":124,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/architect%2Fdynalite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/architect%2Fdynalite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/architect%2Fdynalite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/architect%2Fdynalite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/architect","download_url":"https://codeload.github.com/architect/dynalite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219354,"owners_count":22034396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T05:01:18.602Z","updated_at":"2025-05-14T20:04:39.667Z","avatar_url":"https://github.com/architect.png","language":"JavaScript","funding_links":["https://github.com/sponsors/mhart"],"categories":["JavaScript"],"sub_categories":[],"readme":"# dynalite\n\n[![GitHub CI status](https://github.com/architect/dynalite/workflows/Node%20CI/badge.svg)](https://github.com/architect/dynalite/actions?query=workflow%3A%22Node+CI%22)\n\nAn implementation of Amazon's DynamoDB built on LevelDB\n(well, [@rvagg](https://github.com/rvagg)'s awesome [LevelUP](https://github.com/Level/levelup) to be precise)\nfor fast in-memory or persistent usage.\n\nThis project aims to match the live DynamoDB instances as closely as possible\n(and is tested against them in various regions), including all limits and error messages.\n\n## What about Amazon's DynamoDB Local?\n\nThis project was created before DynamoDB Local existed, and when it did, it differed a lot from the live instances\nin ways that caused my company issues. Since then it's had a lot more development and resources thrown at it,\nand is probably more up-to-date than dynalite is. I'd recommend using it over dynalite if you don't mind the\noverhead of starting the JVM (or docker) each time. If you need a fast in-memory option that you can start up in\nmilliseconds, then dynalite might be more suitable for you.\n\n## Example\n\n```sh\n$ dynalite --help\n\nUsage: dynalite [--port \u003cport\u003e] [--path \u003cpath\u003e] [options]\n\nA DynamoDB http server, optionally backed by LevelDB\n\nOptions:\n--help, -h            Display this help message and exit\n--host                Listen on a specific host address (default: all available)\n--port \u003cport\u003e         The port to listen on (default: 4567)\n--path \u003cpath\u003e         The path to use for the LevelDB store (in-memory by default)\n--ssl                 Enable SSL for the web server (default: false)\n--createTableMs \u003cms\u003e  Amount of time tables stay in CREATING state (default: 500)\n--deleteTableMs \u003cms\u003e  Amount of time tables stay in DELETING state (default: 500)\n--updateTableMs \u003cms\u003e  Amount of time tables stay in UPDATING state (default: 500)\n--maxItemSizeKb \u003ckb\u003e  Maximum item size (default: 400)\n--verbose, -v         Enable verbose logging\n--debug, -d           Enable debug logging\n\nReport bugs at github.com/architect/dynalite/issues\n```\n\nOr programmatically:\n\n```js\n// Returns a standard Node.js HTTP server\nvar dynalite = require('dynalite')\nvar dynaliteServer = dynalite({ path: './mydb', createTableMs: 50 })\n\n// Listen on port 4567\ndynaliteServer.listen(4567, function(err) {\n  if (err) throw err\n  console.log('Dynalite started on port 4567')\n})\n```\n\nOnce running, here's how you use the [AWS SDK](https://github.com/aws/aws-sdk-js) to connect\n(after [configuring the SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/configuring-the-jssdk.html)):\n\n```js\nvar AWS = require('aws-sdk')\n\nvar dynamo = new AWS.DynamoDB({ endpoint: 'http://localhost:4567' })\n\ndynamo.listTables(console.log.bind(console))\n```\n\n## Installation\n\nWith [npm](https://www.npmjs.com/), to install the CLI:\n\n```sh\nnpm install -g dynalite\n```\n\nOr to install for development/testing in your project:\n\n```sh\nnpm install -D dynalite\n```\n\n## TODO\n\n- Implement [Transactions](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html)\n- Implement DynamoDB Streams\n- Implement `ReturnItemCollectionMetrics` on all remaining endpoints\n- Implement size info for tables and indexes\n- Add ProvisionedThroughput checking\n- See [open issues on GitHub](https://github.com/architect/dynalite/issues) for any further TODOs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchitect%2Fdynalite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchitect%2Fdynalite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchitect%2Fdynalite/lists"}