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.
- In-memory sorted data storage
- Event Emitters
- Built-in batch operations
- Supports key and value encoding
- Event-driven architecture
- Streaming support
Install the package with:
npm install @plaindb/memorydb
import MemoryDB from '@plaindb/memorydb'
or
const MemoryDB = require('@plaindb/memorydb')
const db = new MemoryDB()
await db.put('key', 'value')
const value = await db.get('key')
await db.del('key')
const batch = db.batch()
batch.put('key1', 'value1')
batch.put('key2', 'value2')
batch.del('key3')
await batch.build()
You can also create sub-databases.
const subDb = db.sub('subDbPath')
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' }
])
Inserts a new key-value pair or updates the value if the key already exists.
Retrieves the value for the given key. Returns null
if the key does not exist.
Deletes a key and its corresponding value from the database.
Returns a subtree.
Iterates through all the key-value pairs.
Prints all key-value pairs.
Batch execute multiple operations.
Returns a promise that resolves when the database is ready.
Collects keys or values based on the given options.
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 install
To run the tests:
npm test
Thank you! Please see our contributing guidelines for details.
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):
1JUb1yNFH6wjGekRUW6Dfgyg4J4h6wKKdF
Monero (XMR):
46uV2fMZT3EWkBrGUgszJCcbqFqEvqrB4bZBJwsbx7yA8e2WBakXzJSUK8aqT4GoqERzbg4oKT2SiPeCgjzVH6VpSQ5y7KQ
@plaindb/memorydb is MIT licensed.