Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

⚡️ v0.25.0 RELEASE 🚀 #910

Closed
Closed
@daviddias

Description

@daviddias

🚀 This release brings ton of bug fixes and refactor of the internal pieces
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟

🔦 Highlights

🏮 ipfs-repo is now 🐲 free

The IPFS Repo Class went through some careful refactoring process. Now it is easier to understand its internals and to support different backend storage adapters.

To create a js-ipfs node with your own custom repo you just have to:

const node = new IPFS({repo: <your own Repo instance with your backend storage adapters>})

If you are curious, you can learn about what are the default storage adapters in the IPFS Repo itself, namely:

⬢ libp2p is now used directly and the bundles live inside the js-ipfs repo

The JavaScript implementation of libp2p received a lot of love recently, including the addition of Tutorials. You can consult all the details on the Log entry of libp2p's Captain.log - libp2p/js-libp2p#6 (comment)

🏎 SPDY is out of the mix and there goes browserify-zlib special shimming.

SPDY has been removed from the default browser bundle in favor of supporting libp2p-multiplex only. SPDY was the Stream Muxer of js-ipfs since almost the beginning, but since go-ipfs never got a complete implementation of SPDY, we ended up switching to libp2p-multiplex to guarantee interop between implementations. What this means is that you will continue to see the interop, but now your browser bundle will be significantly lighter.

📞 wrtc, the WebRTC module for Node.js is now optional

wrtc, a module that enables js-ipfs Node.js nodes to speak WebRTC, has been excluded from the default list of modules so that Linux users can have a better time when using js-ipfs natively. You can still bring it back and now not only use wrtc but you can also use electron-webrtc, the other WebRTC module for Node.js See how to achieve that in the project's README - https://github.com/ipfs/js-ipfs#advanced-options-when-creating-an-ipfs-node.

Note, this doesn't change the behavior in the browser. Browser nodes will still continue to use WebRTC by default.

🌱 Future

  • New ✨ aegir is coming soon! If you have contributed to js-ipfs and/or js-libp2p, you might be familiar with aegir, our asset pipeline, test, lint, release management tool. aegir makes it extremely convinient to ensure that every single piece of the js-ipfs puzzle is up to the same level of standards and now we are making it even better. Check the development here: [WIP] Aegir@next aegir#134
  • We continue actively working on Circuit Relay, now we a close to final specification available at -- The Circuit Relay Specification libp2p/specs#22 --. Once this spec is merged, we will update the deps to follow it and integrate it with js-ipfs
  • We want to make Electron be a first class platform to run js-ipfs. There are some challenges due to the usage of native dependencies but we are proactively working towards fixing those compatibility issues. Follow this work here: Runtime Support: Electron & Muon #843

✅ Release Checklist

  • Robustness and quality
    • Ensure that all tests are passing, this includes:
      • unit
      • interop
      • sharness
    • Run tests of the following projects with the new release:
      • n/a
  • Documentation
    • Ensure that README.md is up to date
    • Ensure that all the examples run
  • Communication
    • Create the release issue
    • Announcements (pre and post)
      • Twitter
      • IRC
      • Reddit
    • Blog post

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions