js-ipfs 0.28.0 released

by David Dias on 2018-03-16

Excited to share with you all today that js-ipfs v0.28.0 has been released! This release brings a panoply of bug fixes, perf improvements, testing improvements and new features. Upgrading to this version should be smooth.

🔦 Highlights

Spawn IPFS daemons, JS or Go, easier than ever with brand new IPFS Factory (ipfsd-ctl)

The ipfsd-ctl module got a big upgrade and now is capable of spawning JS and Go IPFS Daemons using only JavaScript! The documentation was also updated. We use it for all our tests on js-ipfs, js-ipfs-api and ipfs/interop.

Learn how to use it at https://github.com/ipfs/js-ipfsd-ctl.

Thanks to @dryajov, @richardschneider for helping make this happen and everyone else that participated in the review of the new API.

📣 PubSub is now a 1st class API of libp2p as well

Now both IPFS and libp2p nodes expose the same PubSub API. This enables other applications that want to use the networking stack of IPFS only, including PubSub.

Check the updated example in the js-libp2p repo at https://github.com/libp2p/js-libp2p/tree/master/examples/pubsub.

💻 Multiple jsipfs CLI updates

The jsipfs has been receiving a lot of love lately, updates include:

To test it out, install it globally in your machine with npm: npm install ipfs --global.

Thanks @JonKrone and @vmx for shipping this!

📖 New example - Add multiple files as a directory in the Browser

You asked and @achingbrain shipped it! A new example to show how virtual directories can be added to IPFS from the Browser. Check it out at: https://github.com/ipfs/js-ipfs/tree/master/examples/browser-add-readable-stream

🔌 jsipfs shutdown – stop your daemon remotely

You now can call jsipfs shutdown to turn off your js-ipfs daemon. This comes in handy when you want to stop a remote node and do not have access to the terminal and/or you are running in Windows and interrupt signals don’t work in the same way as in Linux.

💱 IPLD support for Bitcoin and Zcash

The DAG Api now can resolve through Bitcoin and Zcash blocks in the same way that it can resolve through Ethereum blocks thanks to https://github.com/ipld/js-ipld-bitcoin and https://github.com/ipld/js-ipld-zcash. Thanks to @vmx for adding support.

⏩ Testing is now faster with Jenkins, lot faster

@VictorBjelkholm put a bunch of work and now we have super fast test set up for js-ipfs and its modules (remaining modules still being updated). Now when you submit a PR, you will see “Jenkins”. The Jenkins service is running on a beefy machine and has no wait queues! No more waiting for Travis for 6 hours!

🕶 libp2p-mplex is official and has a spec!

Our interoperable Stream Multiplexer has graduated, it has a spec – https://github.com/libp2p/mplex – and an updated module – https://github.com/libp2p/js-libp2p-mplex.

ⒿⓈ⚡️ js-ipfs Dev Team Weekly Sync 🙌🏽

The js-ipfs Dev Team has brought back the Weekly Sync ups! These are designed to be short meetings, focused in the work at hand identify what are the top priorities and everyone’s focus for the week. Everyone is welcome to join, either as a contributor or just as a listener. Read more about it at https://github.com/ipfs/js-ipfs/issues/1179.

🙌🏽 Want to contribute?

Would you like to contribute to the IPFS project and don’t know how? Well, there are a few places you can get started:

⁉️ Do you have questions?

The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs channel on Freenode.

That is all for this post. Thank you for being part of the community. I bid you a good day!