JSPM

  • Created
  • Published
  • Downloads 291
  • Score
    100M100P100Q55932F
  • License Apache-2.0 OR MIT

Suck a DAG out of a peer in the IPFS network.

Package Exports

  • dagula
  • dagula/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dagula) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

dagula

Build JavaScript Style Guide

Suck a DAG out of a peer in the IPFS network.

Install

npm i dagula

Usage

import * as Dagula from 'dagula/p2p.js'

const libp2p = await Dagula.getLibp2p()
const peer = '/dns4/elastic.dag.house/tcp/443/wss/p2p/bafzbeibhqavlasjc7dvbiopygwncnrtvjd2xmryk5laib7zyjor6kf3avm'
const dagula = await Dagula.fromNetwork(libp2p, { peer })

// fetch entire DAG
const cid = 'bafybeig4qjehigdddcoka23crh2s3vrautbep3topuoqblb4chkvvhpilu'
for await (const block of dagula.get(cid)) {
  console.log(`${block.cid} (${block.bytes.length} bytes)`)
}

// fetch a file/directory
const path = 'bafybeiggvykl7skb2ndlmacg2k5modvudocffxjesexlod2pfvg5yhwrqm/2998.png'
for await (const entry of dagula.getUnixfs(path)) {
  console.log(`${entry.path} (${entry.size} bytes)`)
  // note: use `entry.content()` to get file data
}

CLI

# fetch a complete DAG (output format is CAR)
dagula get bafybeidtzj4g33h4d76nfyznjfcejyigejrjpqfzm6ydapuhd26asjg5re > output.car

# fetch a UnixFS file
dagula unixfs get bafybeidtzj4g33h4d76nfyznjfcejyigejrjpqfzm6ydapuhd26asjg5re/path/to/data.txt

# fetch a specific block
dagula block get bafybeidtzj4g33h4d76nfyznjfcejyigejrjpqfzm6ydapuhd26asjg5re

# configure peer to use
dagula peer set /dns4/elastic.dag.house/tcp/443/ws/p2p/bafzbeibhqavlasjc7dvbiopygwncnrtvjd2xmryk5laib7zyjor6kf3avm

Contributing

Feel free to join in. All welcome. Open an issue!

License

Dual-licensed under MIT + Apache 2.0