New transport: go-libp2p-webrtc-direct

Today I’m exited to announce a new transport for the go-libp2p family: go-libp2p-webrtc-direct.

The transport represents the Go counterpart to js-libp2p-webrtc-direct. It enables browser-to-server, and server-to-server, direct communication over WebRTC. Just like its JavaScript counterpart, it uses a direct HTTP connection to exchange the WebRTC signaling information. One remarkable property of this transport is that it supports compilation to WebAssembly. This enables you to use the transport both natively and from the browser or Node.js.

While this transport already brings initial support for WebRTC to go-libp2p it also opens the door to further work, including:

  • A Go counterpart to js-libp2p-webrtc-star.
  • Work towards abstracting signaling, see libp2p/specs#159.
  • Research towards more distributed ways of exchanging signaling information.

Shout-out to @pions for building the fantastic WebRTC Go library that makes this all possible.


:tada: This is a very promising initiative! Thanks for spearheading it and keep up the great work, @backkem!