Leveldown over IPFS
$ npm install ipfs-level --save
const IPFSLevel =
Returns a new IPFSLevel instance. This object obeys the LevelDown interface.
options(object, defaults to this): with the following keys:
ipfsOptions(object). IPFS options object.
log(LevelDown-compatible database that stores the log)
ipfs(IPFS object): an IPFS object instance. If you already can provide an IPFS object, pass it in here.
retainLog(boolean, defaults to false
): whether or not the log should be retained. Besides wasting storage space, setting this option totrue` provides no direct benefit, except if you want to somehow explore the log database.
You can create a constructor that curries some default arguments by using
IPFSLevel.defaults(options) like this:
const ipfsLevel = IPFSLevel
An IPFSLevel instance emits the following events
Emitted whenever there is a change in the database. The event payload is a
change object, which has the following properties:
type(string: "put" or "del")
key(string): the key affected by this change
value(any): the new value for the mentioned key
emit("new head", cid)
Whenever the log has a new head. The payload,
cid is a content identifier (internal to IPFS)
This default options feature may be useful if you want to pass a constructor into which you'll have no saying about the options, like on the Levelup constructor:
const LevelUp =const Memdown = // any leveldown db will do for caching log entriesconst const IPFSLevel =const db =// now you have a levelup db you can use
Test and debug
This package uses debug, so you can activate debug messages by setting the environment variable
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.