👉 Official Documentation — axiodb.in: Full guides, API reference, and examples. This README is a quick start — see the site for everything else.
Embedded NoSQL for Node.js, zero native deps. npm install axiodb and you have a database — no server, no node-gyp, no electron-rebuild.
Problem: better-sqlite3 needs compiled binaries, electron-rebuild on every Electron update, per-platform builds. Plain JSON files have no query/cache/index.
Solution: AxioDB is a file-based document database with ACID transactions and MongoDB-style queries on plain JavaScript objects.
const { AxioDB } = require('axiodb');
const db = new AxioDB({ GUI: true }); // Dashboard at http://localhost:27018
const users = await (await db.createDB('AppDB')).createCollection('users');
await users.insert({ name: 'Alice', age: 30 });
const { data } = await users.query({ age: { $gt: 25 } }).Sort({ age: -1 }).Limit(10).exec();
console.log(data.documents);Great for: Electron, CLI tools, embedded systems, local-first apps, rapid prototyping.
Sweet spot: Local applications, desktop apps, CLI tools, and services that need a simple document database without a separate database server.
Not for: 10M+ docs, hundreds of concurrent users, JOINs, replication/sharding — use PostgreSQL/MongoDB.
npm install axiodb
# Node.js ≥20CRUD means Create, Read, Update, and Delete. The following example creates a database and collection, then demonstrates each basic operation:
const { AxioDB } = require('axiodb');
const db = new AxioDB();
const database = await db.createDB('AppDB');
const users = await database.createCollection('users');
// Create: insert a document. AxioDB adds documentId and updatedAt automatically.
const created = await users.insert({ name: 'Alice', email: 'alice@example.com', age: 30 });
const userId = created.data.documentId;
// Read: query documents and execute the chainable reader.
const result = await users.query({ age: { $gte: 18 } }).exec();
console.log(result.data.documents);
// Update: update the first document matching the query.
await users.update({ documentId: userId }).UpdateOne({ age: 31 });
// Delete: delete the first document matching the query.
await users.delete({ documentId: userId }).deleteOne();Use UpdateMany() or deleteMany() when the operation should affect every matching document.
Updates are flat merges; MongoDB update operators such as $inc, $set, and $push are not
supported.
- Zero native deps — pure JS, no
node-gyp, noelectron-rebuild - MongoDB-style queries —
{ age: { $gt: 25 } }, 19 operators +hint()+findByIds() - ACID transactions —
savepoint/rollbackTo/WAL, crashes recover viaTransaction.recoverTransactions() - Aggregation — 60+ stages,
$lookupjoins,OperatorRegistrycustom ops - InMemoryCache + indexes — dual-write, auto
IndexCache - Ports: GUI
27018· TCP27019AxioDBCloud· MCP27020Docker-only
Docs:
axiodb.inis the single source — this README is a quick start only.
- AxioDBCloud (TCP) — remote
AxioDBCloudclient, 32 commands, optionalTCPAuth+TLS→ axiodb.in/cloud - CLI (Go) —
axiodb document insert/query--hintfind-by-idstransaction begin/commituser change-password(HTTP27018for management, TCP27019for data) → axiodb.in/cli - Docker —
theankansaha/axiodbAXIODB_GUI/TCP/MCP27018/27019/27020→ axiodb.in/docker - MCP Server — 43 tools
axiodb_login→sessionId+withConfirmationDocker/mcp/tools/*.js→ axiodb.in/mcp-server - GUI + RBAC —
Super Admin/Admin/View,mustChangePassword,LoginRateLimiter→ axiodb.in/security - API & Types —
Document/src/data/serverApi.ts41 endpointsopenapi.json, TS 6.0 strict → axiodb.in/api-reference axiodb.in/server-api
- Contributing: see CONTRIBUTING.md + CODE_OF_CONDUCT.md
- Security: see SECURITY.md —
admin/adminmust change password, report via GitHub Security Advisories - License: MIT — LICENSE
- Support: ⭐ star, 🐛 issues, 💡 discussions — https://github.com/nexoral/AxioDB · sponsor
Author: Ankan Saha · Docs: cd Document && npm run dev http://localhost:5173