
Research
/Security News
Shai Hulud Strikes Again (v2)
Another wave of Shai-Hulud campaign has hit npm with more than 500 packages and 700+ versions affected.
The Pure JavaScript Alternative to SQLite. Embedded NoSQL database for Node.js with MongoDB-style queries, zero native dependencies, built-in InMemoryCache, and web GUI. Perfect for desktop apps, CLI tools, and embedded systems. No compilation, no platfor
AxioDB is an embedded NoSQL database for Node.js with MongoDB-style queries. Zero native dependencies, no compilation, no platform issues. Pure JavaScript from npm install to production. Think SQLite, but NoSQL with JavaScript queriesโperfect for desktop apps, CLI tools, and embedded systems.
๐ Official Documentation: Access full guides, examples, and API references.
SQLite requires native C bindings that cause deployment headaches. JSON files have no querying or caching. MongoDB needs a separate server. AxioDB combines the best of all: embedded like SQLite, NoSQL queries like MongoDB, intelligent caching built-in.
SQLite is great, but it requires native bindings that break in Electron and cross-platform deployments:
electron-rebuild on every Electron updatenode-gyp compilation headaches{age: {$gt: 25}}localhost:27018InMemoryCache system with automatic eviction policies and smart data persistence.query(), .Sort(), .Limit(), .Skip())$match, $group, $sort, $project, etc.)insertMany, UpdateMany, DeleteMany)localhost:27018| Feature | SQLite | AxioDB |
|---|---|---|
| Native Dependencies | โ Yes (C bindings) | โ Pure JavaScript |
| Query Language | SQL Strings | JavaScript Objects |
| Schema Migrations | โ Required (ALTER TABLE) | โ Schema-less (optional) |
| Built-in Caching | โ ๏ธ Manual | โ InMemoryCache |
| Multi-core Processing | โ Single-threaded | โ Worker Threads |
| Built-in GUI | โ External tools only | โ Web interface included |
| Best For | 10M+ records, relational data | 10K-500K documents, embedded apps |
| Feature | Traditional JSON Files | AxioDB |
|---|---|---|
| Storage | Single JSON file | File-per-document |
| Caching | None | InMemoryCache |
| Indexing | None | Auto documentId |
| Query Speed | Linear O(n) | Sub-millisecond O(1) |
| Scalability | Poor | Excellent |
| Built-in Query Operators | None | $gt, $lt, $regex, $in |
Benchmark: AxioDB's documentId search with InMemoryCache provides instant retrieval compared to traditional JSON files that require full-file parsing (tested with 1M+ documents).
.axiodb files with file-level isolation and lockingBest Practices:
For vulnerabilities, see SECURITY.md.
AxioDB includes a built-in web-based GUI for database visualization and managementโperfect for Electron apps and development environments.
// Enable GUI when creating AxioDB instance
const db = new AxioDB(true); // GUI available at localhost:27018
// With custom database path
const db = new AxioDB(true, "MyDB", "./custom/path");
Access the GUI at http://localhost:27018 when enabled.
Hierarchical storage enables O(1) document lookups, logarithmic query time, and efficient indexing. Each document is isolated in its own file, supporting selective loading and easy backup.
Leverages Node.js Worker Threads for non-blocking I/O, multi-core utilization, and scalable performanceโespecially for read operations.
Optimized for range queries and filtered searches, minimizing memory usage and computational overhead.
Built-in intelligent caching with automatic eviction policies, TTL support, and memory optimization. Delivers sub-millisecond response times for frequently accessed data.
Intelligent caching, parallelized processing, lazy evaluation, and just-in-time query optimization for maximum throughput.
Ensures ACID compliance, strong data consistency, and simplified deployment. One AxioDB instance manages all databases and collections.
Native JavaScript API, promise-based interface, lightweight dependency, and simple learning curve.
npm install axiodb@latest --save
// npm install axiodb
const { AxioDB } = require('axiodb');
// Create AxioDB instance with built-in GUI
const db = new AxioDB(true); // Enable GUI at localhost:27018
// Create database and collection
const myDB = await db.createDB('HelloWorldDB');
const collection = await myDB.createCollection('greetings', false);
// Insert and retrieve data - Hello World! ๐
await collection.insert({ message: 'Hello, Developer! ๐' });
const result = await collection.findAll();
console.log(result[0].message); // Hello, Developer! ๐
Node.js Required: AxioDB runs on Node.js servers (v20.0.0+), not in browsers.
Important: Only one AxioDB instance should be initialized per application for consistency and security.
createCollection(
name: string, // Name of the collection (required)
isEncrypted?: boolean, // Whether to encrypt the collection (default: false)
encryptionKey?: string // Custom encryption key (optional, auto-generated if not provided)
)
const { AxioDB } = require("axiodb");
const db = new AxioDB();
const userDB = await db.createDB("MyDB");
// Create basic collection
const userCollection = await userDB.createCollection("Users");
// Create encrypted collection with custom key
const secureCollection = await userDB.createCollection(
"SecureUsers",
true,
"mySecretKey",
);
await userCollection.insert({
name: "John Doe",
email: "john.doe@example.com",
age: 30,
});
const results = await userCollection
.query({ age: { $gt: 25 } })
.Limit(10)
.Sort({ age: 1 })
.exec();
console.log(results);
$gt, $lt, $in, $regex, etc.createDB(dbName: string, schemaValidation: boolean = true): Promise<Database>deleteDatabase(dbName: string): Promise<SuccessInterface | ErrorInterface>createCollection(name: string, isEncrypted?: boolean, encryptionKey?: string): Promise<Collection>deleteCollection(name: string): Promise<SuccessInterface | ErrorInterface>getCollectionInfo(): Promise<SuccessInterface>insert(document: object): Promise<SuccessInterface | ErrorInterface>query(query: object): Readerupdate(query: object): Updaterdelete(query: object): Deleteraggregate(pipeline: object[]): AggregationLimit(limit: number): ReaderSkip(skip: number): ReaderSort(sort: object): ReadersetCount(count: boolean): ReadersetProject(project: object): Readerexec(): Promise<SuccessInterface | ErrorInterface>Perfect For:
Sweet Spot: 10K-500K documents with intelligent caching
AxioDB is not competing with PostgreSQL or MongoDB. It's for when you need a database embedded in your appโno server setup, no native dependencies. Think SQLite-scale with MongoDB-style queries and built-in caching.
When you outgrow AxioDB (1M+ documents, distributed systems), migrate to PostgreSQL or MongoDB. That's the right choice, and we support it.
Dataset Size: Optimized for 10K-500K documents. For 10M+ documents, use PostgreSQL, MongoDB, or SQLite which are designed for massive scale.
Concurrency: Single-instance architecture. For multi-user web applications with hundreds of concurrent connections, use traditional client-server databases.
Relational Data: Document-based NoSQL architecture. No JOIN operations. For complex relational data with foreign keys and constraints, use SQL databases.
Distributed Systems: Single-node only. No replication, no sharding, no clustering. For distributed systems, use MongoDB or CouchDB.
Transactions: No ACID transactions across multiple collections. For transaction requirements, use PostgreSQL or MongoDB with transactions enabled.
We welcome contributions! See CONTRIBUTING.md for guidelines.
MIT License. See LICENSE.
Special thanks to all contributors and supporters of AxioDB. Your feedback and contributions make this project better!
The AxioDB documentation is built with:
To run the documentation locally:
cd Document
npm install
npm run dev
The documentation site will be available at http://localhost:5173
Ankan Saha
If you find AxioDB helpful, consider:
We welcome contributions from the community! Whether it's code improvements, documentation updates, bug reports, or feature suggestions, your input helps make AxioDB better. Please read the CONTRIBUTING.md file for guidelines on how to get started.
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to all contributors and supporters of AxioDB. Your feedback and contributions make this project better!
FAQs
The Pure JavaScript Alternative to SQLite. Embedded NoSQL database for Node.js with MongoDB-style queries, zero native dependencies, built-in InMemoryCache, and web GUI. Perfect for desktop apps, CLI tools, and embedded systems. No compilation, no platfor
The npm package axiodb receives a total of 151 weekly downloads. As such, axiodb popularity was classified as not popular.
We found that axiodb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Another wave of Shai-Hulud campaign has hit npm with more than 500 packages and 700+ versions affected.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.