{
"repo": "hyperbee",
"timestamp": "2026-01-16T23:00:27.030Z",
"entryPoint": "index.js",
"exports": {
"packageJson": {
"main": "index.js"
}
},
"api": {
"file": "index.js",
"exports": [
{
"type": "default",
"name": "Hyperbee"
}
],
"classes": [
{
"name": "Key"
},
{
"name": "Child"
},
{
"name": "Cache"
},
{
"name": "Pointers"
},
{
"name": "TreeNode"
},
{
"name": "BlockEntry"
},
{
"name": "CacheLock"
},
{
"name": "BatchEntry"
},
{
"name": "Hyperbee"
},
{
"name": "Batch"
},
{
"name": "EntryWatcher"
},
{
"name": "Watcher"
}
],
"functions": [
{
"name": "inflate"
},
{
"name": "deflate"
},
{
"name": "fin"
},
{
"name": "push"
},
{
"name": "autoFlowOnUpdate"
},
{
"name": "defaultWatchMap"
},
{
"name": "leafSize"
},
{
"name": "setKeyToNearestLeaf"
},
{
"name": "rebalance"
},
{
"name": "iteratorToStream"
},
{
"name": "fin"
},
{
"name": "push"
},
{
"name": "iteratorPeek"
},
{
"name": "encRange"
},
{
"name": "bump"
},
{
"name": "enc"
},
{
"name": "prefixEncoding"
},
{
"name": "copyEntry"
},
{
"name": "defaultDiffer"
},
{
"name": "toNull"
},
{
"name": "getBackingCore"
},
{
"name": "sameValue"
},
{
"name": "noop"
},
{
"name": "getExtension"
},
{
"name": "isLinked"
}
]
},
"readme": {
"content": "# Hyperbee 🐝\n\n[See API docs at docs.pears.com](https://docs.pears.com/building-blocks/hyperbee)\n\nAn append-only B-tree running on a Hypercore. Allows sorted iteration and more.\n\n```\nnpm install hyperbee\n```\n\n## Usage\n\n```js\nconst Hyperbee = require('hyperbee')\nconst Hypercore = require('hypercore')\n\nconst core = new Hypercore('./storage')\nconst db = new Hyperbee(core, { keyEncoding: 'utf-8', valueEncoding: 'binary' })\n\n// If you own the core\nawait db.put('key1', 'value1')\nawait db.put('key2', 'value2')\nawait db.del('some-key')\n\n// If you want to insert/delete batched values\nconst batch = db.batch()\n\nawait batch.put('key', 'value')\nawait batch.del('some-key')\nawait batch.flush() // Execute the batch\n\n// Query the core\nconst entry = await db.get('key') // => null or { key, value }\n\n// Read all entries\nfor await (const entry of db.createReadStream()) {\n // ..\n}\n\n// Read a range\nfor await (const entry of db.createReadStream({ gte: 'a', lt: 'd' })) {\n // Anything >=a and <d\n}\n\n// Get the",
"sections": [
"intro",
"usage",
"api"
],
"hasApi": true,
"hasExamples": true,
"exampleCount": 14,
"examples": [
"npm install hyperbee",
"const Hyperbee = require('hyperbee')\nconst Hypercore = require('hypercore')\n\nconst core = new Hypercore('./storage')\nconst db = new Hyperbee(core, { keyEncoding: 'utf-8', valueEncoding: 'binary' })\n\n// If you own the core\nawait db.put('key1', 'value1')\nawait db.put('key2', 'value2')\nawait db.del('some-key')\n\n// If you want to insert/delete batched values\nconst batch = db.batch()\n\nawait batch.put('key', 'value')\nawait batch.del('some-key')\nawait batch.flush() // Execute the batch\n\n// Query the core\nconst entry = await db.get('key') // => null or { key, value }\n\n// Read all entries\nfor await (const entry of db.createReadStream()) {\n // ..\n}\n\n// Read a range\nfor await (const entry of db.createReadStream({ gte: 'a', lt: 'd' })) {\n // Anything >=a and <d\n}\n\n// Get the last written entry\nfor await (const entry of db.createHistoryStream({ reverse: true, limit: 1 })) {\n // ..\n}",
"{\n keyEncoding: 'binary', // \"binary\" (default), \"utf-8\", \"ascii\", \"json\", or an abstract-encoding\n valueEncoding: 'binary' // Same options as keyEncoding like \"json\", etc\n}"
]
},
"patterns": [
"append-only-log",
"streaming"
]
}