Home

Awesome

⛔️ This module is now part of https://github.com/ipfs/js-stores

datastore-level <!-- omit in toc -->

ipfs.tech Discuss codecov CI

Datastore implementation with level(up|down) backend

Table of contents <!-- omit in toc -->

Install

$ npm i datastore-level

Browser <script> tag

Loading this module through a script tag will make it's exports available as DatastoreLevel in the global namespace.

<script src="https://unpkg.com/datastore-level/dist/index.min.js"></script>

Usage

import { LevelDatastore } from 'datastore-level'

// Default using level as backend for node or the browser
const store = new LevelDatastore('path/to/store')

// another leveldown compliant backend like memory-level
const memStore = new LevelDatastore(
  new MemoryLevel({
    keyEncoding: 'utf8',
    valueEncoding: 'view'
  })
)

Browser Shimming Leveldown

LevelStore uses the level module to automatically use level if a modern bundler is used which can detect bundle targets based on the pkg.browser property in your package.json.

If you are using a bundler that does not support pkg.browser, you will need to handle the shimming yourself, as was the case with versions of LevelStore 0.7.0 and earlier.

Database names

level-js@3 changed the database prefix from IDBWrapper- to level-js-, so please specify the old prefix if you wish to continue using databases created using datastore-level prior to v0.12.0. E.g.

import leveljs from 'level-js'
import browserStore = new LevelDatastore(
  new Level('my/db/name', {
    prefix: 'IDBWrapper-'
  })
})

More information: https://github.com/Level/level-js/blob/master/UPGRADING.md#new-database-prefix

License

Licensed under either of

Contribute

Contributions welcome! Please check out the issues.

Also see our contributing document for more information on how we work, and about contributing in general.

Please be aware that all interactions related to this repo are subject to the IPFS Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.