2525 <br >
2626</p >
2727
28- ### Project status
28+ ### Project status - ` Alpha `
2929
3030We've come a long way, but this project is still in Alpha, lots of development is happening, API might change, beware of the Dragons 🐉..
3131
3232** Want to get started?** Check our [ examples folder] ( /examples ) to learn how to spawn an IPFS node in Node.js and in the Browser.
3333
34- You can check the development status at the [ Waffle Board] ( https://waffle.io/ipfs/js-ipfs ) .
34+ You can check the development status at the [ Kanban Board] ( https://waffle.io/ipfs/js-ipfs ) .
3535
3636[ ![ Throughput Graph] ( https://graphs.waffle.io/ipfs/js-ipfs/throughput.svg )] ( https://waffle.io/ipfs/js-ipfs/metrics/throughput )
3737
@@ -494,36 +494,35 @@ The core API is grouped into several areas:
494494
495495#### Files
496496
497- - [files](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md)
498- - [` ipfs.files.add(data, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesadd).
499- - [` ipfs.files.addPullStream([options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesaddpullstream)
500- - [` ipfs.files.addReadableStream([options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesaddreadablestream)
501- - [` ipfs.files.cat(ipfsPath, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filescat).
502- - [` ipfs.files.catPullStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filescatpullstream)
503- - [` ipfs.files.catReadableStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filescatreadablestream)
504- - [` ipfs.files.get(ipfsPath, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesget).
505- - [` ipfs.files.getPullStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesgetpullstream)
506- - [` ipfs.files.getReadableStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesgetreadablestream)
497+ - [Regular Files API ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md)
498+ - [` ipfs.add(data, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#add)
499+ - [` ipfs.addPullStream([options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#addpullstream)
500+ - [` ipfs.addReadableStream([options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#addreadablestream)
501+ - [` ipfs.addFromStream(stream, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#addfromstream)
502+ - [` ipfs.addFromFs(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#addfromfs)
503+ - [` ipfs.addFromUrl(url, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#addfromurl)
504+ - [` ipfs.cat(ipfsPath, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#cat)
505+ - [` ipfs.catPullStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#catpullstream)
506+ - [` ipfs.catReadableStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#catreadablestream)
507+ - [` ipfs.get(ipfsPath, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#get)
508+ - [` ipfs.getPullStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#getpullstream)
509+ - [` ipfs.getReadableStream(ipfsPath, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#getreadablestream)
507510 - [` ipfs.ls(ipfsPath, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#ls)
508511 - [` ipfs.lsPullStream(ipfsPath)` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#lspullstream)
509512 - [` ipfs.lsReadableStream(ipfsPath)` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#lsreadablestream)
510- - [MFS (mutable file system) specific](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#mutable-file-system)
511- - [` ipfs.files.cp([from, to], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filescp)
512- - [` ipfs.files.flush([path], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesflush)
513- - [` ipfs.files.ls([path], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesls)
514- - [` ipfs.files.mkdir(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesmkdir)
515- - [` ipfs.files.mv([from, to], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesmv)
516- - [` ipfs.files.read(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesread)
517- - [` ipfs.files.readPullStream(path, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesreadpullstream)
518- - [` ipfs.files.readReadableStream(path, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesreadreadablestream)
519- - [` ipfs.files.rm(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesrm)
520- - [` ipfs.files.stat(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesstat)
521- - [` ipfs.files.write(path, content, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#fileswrite)
513+ - [MFS (mutable file system) specific](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#mutable-file-system)
514+ - [` ipfs.files.cp([from, to], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filescp)
515+ - [` ipfs.files.flush([path], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesflush)
516+ - [` ipfs.files.ls([path], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesls)
517+ - [` ipfs.files.mkdir(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesmkdir)
518+ - [` ipfs.files.mv([from, to], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesmv)
519+ - [` ipfs.files.read(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesread)
520+ - [` ipfs.files.readPullStream(path, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesreadpullstream)
521+ - [` ipfs.files.readReadableStream(path, [options])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesreadreadablestream)
522+ - [` ipfs.files.rm(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesrm)
523+ - [` ipfs.files.stat(path, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#filesstat)
524+ - [` ipfs.files.write(path, content, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/FILES.md#fileswrite)
522525
523- - [block](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md)
524- - [` ipfs.block.get(cid, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockget)
525- - [` ipfs.block.put(block, cid, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockput)
526- - [` ipfs.block.stat(cid, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockstat)
527526
528527#### Graph
529528
@@ -532,7 +531,12 @@ The core API is grouped into several areas:
532531 - [` ipfs.dag.get(cid, [path], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/DAG.md#dagget)
533532 - [` ipfs.dag.tree(cid, [path], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/DAG.md#dagtree)
534533
535- - [object](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md)
534+ - [pin](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md)
535+ - [` ipfs.pin.add(hash, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinadd)
536+ - [` ipfs.pin.ls([hash], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinls)
537+ - [` ipfs.pin.rm(hash, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinrm)
538+
539+ - [object (legacy)](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md)
536540 - [` ipfs.object.new([template], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md#objectnew)
537541 - [` ipfs.object.put(obj, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md#objectput)
538542 - [` ipfs.object.get(multihash, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md#objectget)
@@ -544,10 +548,15 @@ The core API is grouped into several areas:
544548 - [` ipfs.object.patch.appendData(multihash, data, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md#objectpatchappenddata)
545549 - [` ipfs.object.patch.setData(multihash, data, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/OBJECT.md#objectpatchsetdata)
546550
547- - [pin](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md)
548- - [` ipfs.pin.add(hash, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinadd)
549- - [` ipfs.pin.ls([hash], [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinls)
550- - [` ipfs.pin.rm(hash, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/PIN.md#pinrm)
551+ #### Block
552+
553+ - [block](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md)
554+ - [` ipfs.block.get(cid, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockget)
555+ - [` ipfs.block.put(block, cid, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockput)
556+ - [` ipfs.block.stat(cid, [callback])` ](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BLOCK.md#blockstat)
557+ - [bitswap](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BITSWAP.md)
558+ - [` ipfs.bitswap.wantlist([peerId], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BITSWAP.md#bitswapwantlist)
559+ - [` ipfs.bitswap.stat([callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BITSWAP.md#bitswapstat)
551560
552561#### Name
553562
@@ -574,10 +583,6 @@ The core API is grouped into several areas:
574583 - [` ipfs.bootstrap.add(addr, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BOOTSTRAP.md#bootstrapadd)
575584 - [` ipfs.bootstrap.rm(peer, [options], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BOOTSTRAP.md#bootstraprm)
576585
577- - [bitswap](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/BITSWAP.md)
578- - [` ipfs.bitswap.wantlist([peerId], [callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BITSWAP.md#bitswapwantlist)
579- - [` ipfs.bitswap.stat([callback])` ](https: // github.com/ipfs/interface-ipfs-core/blob/master/SPEC/BITSWAP.md#bitswapstat)
580-
581586- dht (not implemented yet)
582587
583588- [pubsub](https: // github.com/ipfs/interface-ipfs-core/tree/master/SPEC/PUBSUB.md)
@@ -1007,10 +1012,10 @@ What does this image explain?
10071012
10081013IPFS implementation in JavaScript is a work in progress . As such, there' s a few things you can do right now to help out:
10091014
1010- * Go through the modules below and **check out existing issues**. This would be especially useful for modules in active development. Some knowledge of IPFS may be required, as well as the infrastructure behind it - for instance, you may need to read up on p2p and more complex operations like muxing to be able to help technically.
1011- * **Perform code reviews**. More eyes will help (a) speed the project along, (b) ensure quality, and (c) reduce possible future bugs.
1012- * Take a look at go-ipfs and some of the planning repositories or issues: for instance, the [libp2p spec](https://github.com/ipfs/specs/pull/19). Contributions here that would be most helpful are **top-level comments** about how it should look based on our understanding. Again, the more eyes the better.
1013- * **Add tests**. There can never be enough tests.
1015+ - Go through the modules below and **check out existing issues**. This would be especially useful for modules in active development. Some knowledge of IPFS may be required, as well as the infrastructure behind it - for instance, you may need to read up on p2p and more complex operations like muxing to be able to help technically.
1016+ - **Perform code reviews**. More eyes will help (a) speed the project along, (b) ensure quality, and (c) reduce possible future bugs.
1017+ - Take a look at go-ipfs and some of the planning repositories or issues: for instance, the [libp2p spec](https://github.com/ipfs/specs/pull/19). Contributions here that would be most helpful are **top-level comments** about how it should look based on our understanding. Again, the more eyes the better.
1018+ - **Add tests**. There can never be enough tests.
10141019
10151020### Want to hack on IPFS?
10161021
0 commit comments