Skip to content

kappa-db/multifeed-replicate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multifeed-replicate

replicate feeds contained in a multifeed-storage

example

var mstorage = require('multifeed-storage')
var ram = require('random-access-memory')
var Protocol = require('hypercore-protocol')
var replicate = require('multifeed-replicate')

var s0 = mstorage(ram)
var s1 = mstorage(ram)

var localFeed = s0.createLocal()
localFeed.append('hi', function (err) {
  if (err) return console.error(err)
  s1.getOrCreateRemote(localFeed.key, function (err, remoteFeed) {
    if (err) return console.error(err)
    sync(localFeed, remoteFeed)
  })
})

function sync (localFeed, remoteFeed) {
  var p0 = new Protocol(true)
  var p1 = new Protocol(false)
  var r0 = replicate(s0, p0)
  var r1 = replicate(s1, p1)
  p0.pipe(p1).pipe(p0)
  remoteFeed.update(1, function () {
    remoteFeed.get(0, function (err, buf) {
      if (err) return console.error(err)
      console.log('message 0 replicated to remote log:', buf)
    })
  })
  r1.open(remoteFeed.key, { live: true, sparse: true })
}

api

var replicate = require('multifeed-replicate')

var r = replicate(storage, protocol, opts)

Create a new replicate instance r from a multifeed-storage instance, a hypercore-protocol instance, and opts which are forwarded to the hypercore replication method.

r.open(key, opts)

Open a channel to replicate a feed by its key. The feed must have been created (locally or remotely) first.

r.on('error', function (err) {})

Catch internal error events.

install

npm install multifeed-replicate

license

BSD

About

replicate feeds contained in a multifeed-storage

Resources

License

Stars

Watchers

Forks

Packages

No packages published