🚀 Launch Week Day 2:Introducing Custom Tabs for Org Alerts.Learn More →
Socket
Book a DemoInstallSign in
Socket

hyperbee-diff-stream

Package Overview
Dependencies
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hyperbee-diff-stream

Get the diff stream between two versions of a hyperbee (supports autobase views)

latest
Source
npmnpm
Version
2.0.1
Version published
Maintainers
0
Created
Source

Hyperbee Diff Stream

Get the diff stream between two snapshots of a hyperbee. Ideal for autobase views.

For example, when reconnecting after having worked locally for a while, it can get the diff stream between a snapshot from just before and from just after the autobase linearisation. Even if several peers (including you in your local fork) made a lot of changes to a particular key, the diff stream will still yield only a single change for it.

Install

npm i hyperbee-diff-stream

Versioning and Compatibility

V1 uses features introduced in Hyperbee ^2.5.0, Hypercore ^10.8.1 and autobase^6.0.0

V2 works with Hypercore V11, Autobase V7 and Corestore V7.

Usage

See example.js

API

const diffStream = new BeeDiffStream(leftSnapshot, rightSnapshot, [options])

Make a new BeeDiffStream instance, which is the stream of changes to get from the state of leftSnapshot to that of rightSnapshot.

The stream is ordered by key.

leftSnapshot and rightSnapshot should be snapshots (or checkouts) of the same hyperbee. The hyperbee can be an autobase view.

The passed snapshots are managed by BeeDiffStream, and will be closed when the diff stream closes.

The opts include:

{
  gt: 'only consider keys > than this',
  gte: 'only consider keys >= than this',
  lt: 'only consider keys < than this',
  lte: 'only consider keys <= than this',
  keyEncoding: 'utf-8', // a key encoding
  valueEncoding: 'json' // a value encoding,
  closeSnapshots: true // set to false if you wish to use the passed-in snapshots after the diffStream is fully yielded.
}

By default the key- and value encoding of the hyperbee are used.

The stream yields values which have the same format as a Hyperbee diff stream:

{
   left: { seq, key, value },
   right: { seq, key, value }
}

left is the current entry, right is the previous entry.

  • if right is null, the key was added
  • If left is null, the key was deleted
  • If both left and right are present, the key was updated from right to left.

Note: when used on an autobase view, it might be tricky to interpret the seq value, since it can refer to either the left or the right snapshot. (With autobase views, blocks can get removed due to truncates, so the same seq might refer to different entries on different snapshots.)

FAQs

Package last updated on 24 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts