orbit-db-storage-adapter

OrbitDB adapter for any abstract-leveldown compliant storage

Usage no npm install needed!

<script type="module">
  import orbitDbStorageAdapter from 'https://cdn.skypack.dev/orbit-db-storage-adapter';
</script>

README

OrbitDB Storage Adapter

CircleCI Gitter Matrix

A wrapper for abstract-leveldown compliant stores, used by OrbitDB

This is a tool that manages a persistent connection to an abstract-leveldown compliant store. The implementation tests indicate include examples for the following stores

Help is wanted to support more stores!

OrbitDB uses it primarily with levelup (in node.js) and level-js (in the browser) and inside the orbit-db-keystore and orbit-db-cache packages.

Install

Leveldown is used as an example here, but you could install any abstract-leveldown complaint store.

npm install orbit-db-storage-adapter leveldown

Usage

Usage is the same on the command line or in the browser. async/await used for brevity.

// Requirements
const leveldown = require('leveldown') // or any abstract-leveldown complaint store
const leveldownOptions = {}
const storage = require('orbit-db-storage-adapter')(leveldown, leveldownOptions)

const levelupOptions = {} // see below
store = await storage.createStore(location, levelupOptions) // These options passed to levelup instance
// ***
// Do stuff with the store here: get, put, delete, batch, etc
// **
await store.close()
await storage.destroy(store)

Options

When setting everything up, you have the opportunity to pass two sets of options: one for the leveldown instantiation, and the other for the levelup instantiation.

Contributing

Pull requests and issues are welcome. Issues tagged with "Help Wanted" will have the most impact.

License

MIT © Haja Networks Oy