GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Level/memory-level: In-memory abstract-level database for Node.js and browsers.

BranchesTags
Open more actions menu

Latest commit

 

History

390 Commits
390 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
lib
lib
 
 
.airtap.yml
.airtap.yml
 
 
.gitignore
.gitignore
 
 
.npmrc
.npmrc
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
UPGRADING.md
UPGRADING.md
 
 
index.d.ts
index.d.ts
 
 
index.js
index.js
 
 
package.json
package.json
 
 
test.js
test.js
 
 
tsconfig.json
tsconfig.json
 
 

Repository files navigation

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.

📌 Wondering what happened to levelup? Visit Frequently Asked Questions.

level badge npm Node version Test Coverage Standard Common Changelog Donate

Usage

If you are upgrading: please see UPGRADING.md.

const { MemoryLevel } = require('memory-level')

// Create a database
const db = new MemoryLevel({ valueEncoding: 'json' })

// Add an entry with key 'a' and value 1
await db.put('a', 1)

// Add multiple entries
await db.batch([{ type: 'put', key: 'b', value: 2 }])

// Get value of key 'a': 1
const value = await db.get('a')

// Iterate entries with keys that are greater than 'a'
for await (const [key, value] of db.iterator({ gt: 'a' })) {
  console.log(value) // 2
}

API

The API of memory-level follows that of abstract-level with one additional constructor option (see below). The createIfMissing and errorIfExists options of abstract-level are not relevant here. Both implicit and explicit snapshots are supported. 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

About

In-memory abstract-level database for Node.js and browsers.

Topics

abstract-leveldatabasejavascriptlevelmemory

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

37 stars

Watchers

5 watching

Forks

3 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.