Skip to content
This repository has been archived by the owner on Sep 30, 2023. It is now read-only.

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

License

Notifications You must be signed in to change notification settings

orbitdb-archive/orbit-db-storage-adapter

Repository files navigation

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
import leveldown from 'leveldown' // or any abstract-leveldown complaint store
import storageAdapter from 'orbit-db-storage-adapter')

const leveldownOptions = {}
const storage = storageAdapter(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