memory-level
In-memory abstract-level
database for Node.js and browsers, backed by a fully persistent red-black tree. The successor to memdown
and level-mem
.
:pushpin: Which module should I use? What is abstract-level
? Head over to the FAQ.
Usage
If you are upgrading: please see UPGRADING.md
.
const { MemoryLevel } = require('memory-level')
const db = new MemoryLevel({ valueEncoding: 'json' })
await db.put('a', 1)
await db.batch([{ type: 'put', key: 'b', value: 2 }])
const value = await db.get('a')
for await (const [key, value] of db.iterator({ gt: 'a' })) {
console.log(value)
}
API
The API of memory-level
follows that of abstract-level
with a one additional constructor option (see below). The createIfMissing
and errorIfExists
options of abstract-level
are not relevant here. Data is discarded when the last reference to the database is released (i.e. db = null
). Closing or reopening the database has no effect on the data. Data is not copied: when storing a Buffer value for example, subsequent mutations to that Buffer will affect the stored data too.
db = new MemoryLevel([options])
Besides abstract-level
options, the optional options
object may contain:
storeEncoding
(string): one of 'buffer'
, 'view'
, 'utf8'
. How to store data internally. This affects which data types can be stored non-destructively. The default is 'buffer'
(that means Buffer) which is non-destructive. In browsers it may be preferable to use 'view'
(Uint8Array) to be able to exclude the buffer
shim. Or if there's no need to store binary data, then 'utf8'
(String). Regardless of the storeEncoding
, memory-level
supports input that is of any of the aforementioned types, but internally converts it to one type in order to provide a consistent sort order.
Install
With npm do:
npm install memory-level
Contributing
Level/memory-level
is an OPEN Open Source Project. This means that:
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
See the Contribution Guide for more details.
License
MIT