Suck a DAG out of a peer in the IPFS network.
npm i dagula
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
}
# 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
Feel free to join in. All welcome. Open an issue!
Dual-licensed under MIT + Apache 2.0