AxioDB
The problem#
SQLite is great, but its native C bindings cause real deployment pain in JavaScript projects:
electron-rebuildon every Electron update- Platform-specific builds (Windows
.nodefiles are not Mac.nodefiles) - SQL strings instead of JavaScript objects
- Schema migrations every time your data model changes
node-gypcompilation headaches
Plain JSON files avoid all that, but they have no querying, no caching, and no indexing — they stop scaling past a few thousand records. MongoDB solves the query and caching problem, but it needs a separate server process, which is overkill for a desktop app, a CLI tool, or an embedded system.
The solution#
AxioDB combines the parts of each option that actually matter for an embedded use case:
- Works everywhere Node.js runs — no rebuild, no native dependencies
- MongoDB-style queries:
{ age: { $gt: 25 } } - Schema-less JSON documents — no migrations
- Built-in
InMemoryCachewith automatic invalidation - Multi-core parallelism with Worker Threads
- Built-in web GUI at
localhost:27018 - AxioDBCloud — optional TCP remote access for Docker and cloud deployments
Is it a fit for you?#
Electron, Tauri
local storage with zero server setup
single-node, file-based storage
query with JavaScript objects, not SQL
10K–500K documents with intelligent caching
AxioDB isn't competing with PostgreSQL or MongoDB. It's for when you need a database embedded in your app — no server setup, no native dependencies. When you outgrow it, migrating to PostgreSQL or MongoDB is the expected next step.
Start here#
Benchmarks#
Tested March 2026, Ubuntu Linux, Node.js v20+, 10,000-document dataset:
| Operation | Time |
|---|---|
| Insert single | ~3ms |
| InsertMany (10) | ~87ms |
| Indexed read | ~2ms |
| findOne | ~1ms |
| UpdateOne | ~8ms |
| DeleteOne | ~3ms |
| Transaction insert | ~23ms |
See Comparisons for the full breakdown against SQLite and JSON files.