dbnanojs
v1.0.2
Published
Lightweight embedded database engine for Node.js with indexing, schema validation, query builder, and append-only storage.
Maintainers
Readme
Features
- Zero setup
- Embedded local database
- TypeScript support
- Fast indexed lookups
- Append-only storage engine
- Query optimization
- Schema validation
- ESM compatible
- No external database server required
Installation
# npm
npm install dbnanojs
# yarn
# pnpm
pnpm add dbnanojsQuick Start
import { DBnano } from "dbnanojs"
const users = new DBnano("users", {
schema: {
name: "string",
age: "number",
email: "string"
}
})
await users.insert({
name: "Abu",
age: 20,
email: "[email protected]"
})
const result = await (
await users.find({
age: {
$gt: 18
}
})
)
.sort("age", "desc")
.limit(5)
.exec()
console.log(result)Query Operators
Supported operators:
| Operator | Description | |----------|-----------------------------| | $eq | Equal | | $ne | Not equal | | $gt | Greater than | | $gte | Greater than or equal | | $lt | Less than | | $lte | Less than or equal | | $in | Match values in array | | $or | Logical OR | | $and | Logical AND |
Indexing
await users.createIndex("email")Indexed equality queries use hash maps for faster lookups.
Query Builder
const usersList = await (
await users.find({})
)
.sort("age", "desc")
.skip(10)
.limit(5)
.exec()Storage Engine
DBnano uses append-only log storage instead of rewriting full JSON files.
Data is stored in:
data/users.logProject Structure
src/
├── core/
├── storage/
├── schema/
├── query/
├── utils/
└── index.tsPerformance
DBnano includes:
- In-memory caching
- Hash indexing
- Query optimization
- Append-only persistence
Roadmap
Planned features:
- WAL support
- Transactions
- B-tree indexes
- Aggregation pipelines
- Nested queries
- Replication
License
MIT License
