@hyperswarm/replicator

    2.0.2 • Public • Published

    @hyperswarm/replicator

    Replicate data structures easily using hyperswarm

    Install

    npm install @hyperswarm/replicator

    Usage

    You data structure has to support a .replicate() stream, then you can replicate them using the hyperswarm replicator.

    const Replicator = require('@hyperswarm/replicator')
    
    const r = new Replicator()
    
    r.add(aHypercore, {
      live: true // passed to .replicate
    })

    API

    r = new Replicator([options])

    Make a new replicator. Options include:

    {
      bootstrap: [...], // optional set the DHT bootstrap servers
    }

    promise = r.add(hyperDataStructure, [options])

    Add a hyper* data structure to replicate.

    {
      live: bool, // passed to .replicate
      upload: bool, // passed to .replicate
      download: bool, // passed to .replicate
      encrypt: bool, // passed to .replicate
      discoveryKey: <buf>, // optionally set your own discovery key
      announce: true, // should the swarm announce you?
      lookup: true, // should the swarm do lookups for you?
      keyPair: { publicKey, secretKey }, // noise keypair used for the connection
      onauthenticate (remotePublicKey, done) // the onauthenticate hook to verify remote key pairs
    }

    Promise resolves when the data structure has been fully added.

    promise = r.remove(hyperDataStructure)

    Remove a data structure from replication. Promise resolves when the data structure has been fully removed.

    r.swarm

    The associated hyperswarm instance.

    r.on('discovery-key', (discoveryKey, remoteStream) => ...)

    Emitted when a remote asks for a discovery key of a data structure you are not currently replicating.

    r = Replicator.replicate(hyperDataStructure[s])

    Easy "one off" replication of one or more data structures.

    License

    MIT

    Keywords

    none

    Install

    npm i @hyperswarm/replicator

    DownloadsWeekly Downloads

    76

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    10.3 kB

    Total Files

    6

    Last publish

    Collaborators

    • mafintosh
    • pfrazee
    • davidmarkclements