This issue tracks remaining work around embedded js-ipfs running in ipfs-companion in Brave with access to chrome.sockets APIs. For more context, see:
High Level Goals
- Leveling up js-ipfs to match go-ipfs in features relevant to in web browser uses
- Brave users can use IPFS with Companion alone, without installing go-ipfs or ipfs-desktop
- IPFS nodes in Brave can discover each other on the same network and exchange data in p2p fashion
Kanban Board
How to opt-in
Stable release of IPFS Companion can be enabled via Brave Settings (chrome://settings/extensions):

By default, it works like regular ipfs-companion and External node is used by default, assuming user has go-ipfs or IPFS Desktop installed and running.
Brave users can opt-in and try Embedded + chrome.sockets (see /docs/node-types for more details)


TODO
🎨 UX
🔌 chrome.sockets
🌐 Embedded HTTP Gateway
🕸️ Local Discovery and UDP/TCP Transports
⚡ Performance
High Level Goals
Kanban Board
How to opt-in
Stable release of IPFS Companion can be enabled via Brave Settings (
chrome://settings/extensions):By default, it works like regular ipfs-companion and
Externalnode is used by default, assuming user has go-ipfs or IPFS Desktop installed and running.Brave users can opt-in and try
Embedded + chrome.sockets(see /docs/node-types for more details)TODO
🎨 UX
embedded:chromesockets)ipfs://andipns://🔌 chrome.sockets
chrome.sockets(Support chrome.sockets.* APIs #664)chrome.socketsshould enable additional powers at runtimesocketssection🌐 Embedded HTTP Gateway
last-modified(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)if-none-matchand304 Not Modified(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)?filenameandContent-Disposition(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)/ipns/docs.ipfs.io/) are not supported by js-ipfs/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/do not work with js-ipfs...in directory listing points at current directory instead of its parent/ipns/tr.wikipedia-on-ipfs.org/wiki/Venüs.html)🕸️ Local Discovery and UDP/TCP Transports
chrome.sockets.tcpandchrome.sockets.tcpServer)chrome.system.network.getNetworkInterfaces?chrome.sockets.udp⚡ Performance
ipfs.io/api/v0/dns: we need to add cache to this, or support DoH (Support DNS over HTTPS helia-ipns#53) or implementchrome.sockets.udp*API