@plaindb/memorydb v0.0.2
MemoryDB
An in-memory database that's designed for high-performance data storage and retrieval. Support for sorted data structures and batch operations that enable sorted and efficient data handling operations. You can perform CRUD operations, iterate through sorted data, and much more.
Features
- In-memory sorted data storage
- Event Emitters
- Built-in batch operations
- Supports key and value encoding
- Event-driven architecture
- Streaming support
Installation
Install the package with:
npm install @plaindb/memorydbUsage
Import the Package
import MemoryDB from '@plaindb/memorydb'or
const MemoryDB = require('@plaindb/memorydb')Create a New MemoryDB Instance
const db = new MemoryDB()Insert a Key-Value Pair
await db.put('key', 'value')Retrieve a Value by Key
const value = await db.get('key')Delete a Key
await db.del('key')Batch Operations
const batch = db.batch()
batch.put('key1', 'value1')
batch.put('key2', 'value2')
batch.del('key3')
await batch.build()Sub Databases
You can also create sub-databases.
const subDb = db.sub('subDbPath')Example
const db = new MemoryDB()
// put, get and del operations will wait for the instance to be ready but you can call it explicitly
await db.isReady()
// put key-value pair
await db.put('key1', 'value1')
// get value by key
console.log(await db.get('key1')) // Output: value1
// delete key
await db.del('key1')
// batch operations
await db.batch([
{ type: 'put', key: 'key1', value: 'value1' },
{ type: 'put', key: 'key2', value: 'value2' }
])Documentation
Class MemoryDB
async put(key, value)
Inserts a new key-value pair or updates the value if the key already exists.
async get(key)
Retrieves the value for the given key. Returns null if the key does not exist.
async del(key)
Deletes a key and its corresponding value from the database.
sub(path, opts)
Returns a subtree.
iterator(opts)
Iterates through all the key-value pairs.
listAll(opts)
Prints all key-value pairs.
batch(ops)
Batch execute multiple operations.
isReady()
Returns a promise that resolves when the database is ready.
collect(type, opts)
Collects keys or values based on the given options.
Tests
In order to run the test suite, simply clone the repository and install its dependencies:
git clone https://gitlab.com/frenware/framework/plaindb/memorydb.git
cd basd
npm installTo run the tests:
npm testContributing
Thank you! Please see our contributing guidelines for details.
Donations
If you find this project useful and want to help support further development, please send us some coin. We greatly appreciate any and all contributions. Thank you!
Bitcoin (BTC):
1JUb1yNFH6wjGekRUW6Dfgyg4J4h6wKKdFMonero (XMR):
46uV2fMZT3EWkBrGUgszJCcbqFqEvqrB4bZBJwsbx7yA8e2WBakXzJSUK8aqT4GoqERzbg4oKT2SiPeCgjzVH6VpSQ5y7KQLicense
@plaindb/memorydb is MIT licensed.