A lightweight embedded database inspired from leveldb but operate in sync mode
npm install compact-dbA lightweight embedded database inspired from leveldb but operate in sync mode.

Import and create database instance:
``typescript
import { createDB } from 'compact-db'
let db = createDB({ path: 'data' })
`
Database options and supported methods (from dist/db.d.ts):
`typescript
export type Key = string | number
export declare function createDB(options: {
path: string
// default 8 MB
batch_read_size?: number
// default 2 (compact will occur when the file size of LOG file is twice as DATA file)
compact_ratio?: number
}): {
get:
set: (key: Key, value: any) => void;
del: (key: Key) => void;
clear: () => void;
batch: (batch: Batch) => void;
keys: () => string[];
entries: () => any[][];
values: () => any[];
};
`
Type signature of batch operations:
`typescript``
export declare type Batch = Op[];
export declare type Op = {
type: 'del';
key: Key;
} | {
type: 'set';
key: Key;
value: any;
} | {
type: 'clear';
};
Details refer to the test spec
This project is licensed with BSD-2-Clause
This is free, libre, and open-source software. It comes down to four essential freedoms [[ref]](https://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.html#fnref:2):
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others