lazyydb
v1.1.2
Published
A lightweight, zero-setup JSON database with SQL-like queries
Maintainers
Readme
LazyDB
A lightweight, zero-setup JSON database with SQL-like queries, perfect for rapid development. Features multi-file storage, versioning, and a GUI interface.
Features
- 📁 Multi-File Storage: Tables stored in separate files for better scalability
- 🔄 Automatic Versioning: Built-in backup and version control
- 🖥️ GUI & CLI Tools: Visual interface and command-line operations
- 🚀 Zero-Config: Works in-memory or with files
- 🔍 Advanced Queries: Joins, aggregations, full-text search
- 📊 Indexing: B-tree and inverted indexes for speed
- 🎯 Event-Driven: React to data changes
Installation
npm install lazyydbQuick Start
const LazyDB = require('lazyydb');
// File-based with auto-versioning
const db = new LazyDB('./data');
// Create a table
db.createTable('users', { name: 'string', age: 'number' });
// Insert data
db.insert('users', { name: 'Alice', age: 25 });
// Query with SQL-like syntax
const results = db.select('users')
.where('age', '>', 20)
.execute();GUI Interface
Start the visual interface:
npx lazydb --guiAccess at http://localhost:3000
CLI Commands
# Interactive mode
npx lazydb --interactive
# Direct SQL queries
npx lazydb "SELECT * FROM users WHERE age > 20"
# List versions of a table
npx lazydb --versions users
# Restore a specific version
npx lazydb --restore users version-2023-01-01Version Management
// Get available versions
const versions = await db.getTableVersions('users');
// Restore specific version
await db.restoreTableVersion('users', 'users.json.2023-01-01');Advanced Features
// Full-text search
db.select('users')
.search('bio', 'software engineer')
.execute();
// Joins and aggregations
db.select('users')
.join('orders', 'id', 'userId')
.aggregate('amount', 'sum')
.execute();
// Event handling
db.on('insert', (table, record) => {
console.log(`New record in ${table}:`, record);
});Data Storage
- Each table stored in separate JSON file (
tablename.json) - Automatic versioning in
versionssubdirectory - Schema stored in
schema.json
Performance
- B-tree indexing for fast lookups
- Query result caching
- Streaming support for large files
- Compression for storage efficiency
License
MIT
