Dynoxide
A DynamoDB emulator backed by SQLite. No Docker, no JVM - runs as an HTTP server, MCP server, or embedded library.
https://github.com/nubo-db/dynoxide ↗
About Dynoxide
I wrote about why I built Dynoxide and how it evolved from an embedded library into a standalone tool. Here's the short version.
I built Dynoxide because DynamoDB Local was driving me mad. It needs Docker or a JVM, takes seconds to start, and eats memory just sitting there. I wanted something I could spin up instantly for local development and testing without all that overhead. I also needed something we could embed directly into a native app we're building - which ruled out anything that runs as a separate process.
Dynoxide is a single ~3MB Rust binary backed by SQLite. It covers pretty much everything DynamoDB can do - table management, item CRUD, batch processing, transactions, PartiQL queries, TTL, and DynamoDB Streams. It passes the full conformance suite that verifies its behaviour against real DynamoDB.
Three ways to run it
- HTTP server - drop-in replacement for DynamoDB Local, works with any AWS SDK
- Embedded library - link directly into Rust applications for zero-overhead testing
- MCP server - built for AI coding agents that need to work with DynamoDB
Performance
Cold startup in about 15ms as an HTTP server, or ~0.2ms in embedded mode (vs ~2,287ms for DynamoDB Local). Idle memory footprint of ~4.9MB. No JVM warmup, no Docker overhead.
Install
Available via Homebrew, npm, crates.io, or as a standalone binary from GitHub releases.
Conformance testing
I built a standalone DynamoDB conformance suite to make sure Dynoxide actually behaves like real DynamoDB - the suite runs against both and checks for identical behaviour, with real DynamoDB as the ground truth.