lightdbv2
Version:
Lightweight key-value database for Node.js using append-only JSONL format.
109 lines (76 loc) โข 2.56 kB
Markdown
# ๐ก LightDBv2
๐ **LightDBv2** adalah database ringan berbasis JSONL (JSON Lines) untuk Node.js, cocok untuk aplikasi kecil, prototipe, dan skenario embedded storage yang tidak memerlukan database kompleks.
## โจ Fitur Utama
- ๐ *Append-only JSONL Store* โ semua perubahan disimpan sebagai baris baru.
- โก *In-memory index* โ akses data cepat tanpa membaca seluruh file.
- ๐ฆ *API sederhana* โ hanya butuh `set()`, `get()`, `delete()`, `exists()`, `list()` dan `compact()`.
- ๐งน *Auto compaction on exit* โ file dibersihkan otomatis saat aplikasi keluar.
- ๐ Cocok untuk bot, CLI tools, dan aplikasi ringan lainnya.
## ๐ Instalasi
```bash
npm install lightdbv2
```
## ๐ Inisialisasi
```bash
const LightDB = require('lightdbv2');
(async () => {
const db = new LightDB('storage.jsonl', { debug: true });
await db.init();
})();
```
# ๐ Fungsi & Contoh
## โ
exists(key) โ cek key apakah ada
```bash
const ada = db.exists('user1'); // return boolean
```
## ๐ฆ set(key, value) โ simpan / update data
```bash
await db.set('user1', { name: 'Rezvy', age: 22 });
```
## ๐ get(key) โ ambil data
```bash
const data = await db.get('user1'); // { key:'user1', name:'Rezvy', age:22 }
```
## ๐ delete(key) โ tandai sebagai terhapus
```bash
await db.delete('user2');
```
## ๐ list() โ ambil semua data aktif
```bash
const semua = await db.list(); // [{...}, {...}]
```
## ๐งน compact() โ bersihkan file
```bash
await db.compact();
```
## ๐งช Contoh Lengkap
```bash
const LightDB = require('lightdbv2');
(async () => {
const db = new LightDB('storage.jsonl', { debug: true });
await db.init();
await db.set('user1', { name: 'Rezvy', age: 22 });
await db.set('user2', { name: 'Bot', age: 1 });
console.log('user1 ada?', db.exists('user1')); // true
console.log('user3 ada?', db.exists('user3')); // false
console.log('Data user1:', await db.get('user1'));
await db.set('user1', { name: 'Rezvy', age: 23 });
console.log('Semua data aktif:', await db.list());
await db.delete('user2');
console.log('user2 ada setelah delete?', db.exists('user2')); // false
await db.compact();
console.log('Setelah compact:', await db.list());
await db.set('user3', { name: 'Baru', age: 99 });
console.log('Setelah tambah user3:', await db.list());
})();
```