go-libp2p
go-libp2p copied to clipboard
[Tracking Issue] Experimental WebTransport Transport
Done Criteria
WebTransport is another full-functioning transport in go-libp2p.
Two go-libp2p nodes can establish a connection using WebTransport following the spec.
The implementation is unit tested.
We have interoperability tests between versions.
libp2p documentation is updated for discoverability of this functionality
Why Important
This is covered more in the spec, but WebTransport provides a performant way for browsers (Chromium currently) to connect with the rest of the libp2p network.
Tasks
- [x] https://github.com/libp2p/go-libp2p/pull/1728
- [x] create an initial release of webtransport-go
- [x] https://github.com/libp2p/go-libp2p/pull/1737
- [x] https://github.com/libp2p/go-libp2p/pull/1653
- [x] https://github.com/libp2p/go-libp2p/pull/1749
- [x] https://github.com/libp2p/go-libp2p/pull/1756
- [x] https://github.com/libp2p/go-libp2p/pull/1757
- [x] https://github.com/libp2p/go-libp2p/pull/1761
- [x] https://github.com/libp2p/go-libp2p/pull/1762
- [ ] initial interop with js-libp2p (manual testing is ok for now)
Notes
- Connectivity with other implementations will be added once they are created.
- This is intended to be a tracking issue that can link other issues and PRs to for delivering this work.
@marten-seemann @MarcoPolo @p-shahi : I created this issue so we can taskify the WebTrasnport work. Please go ahead and add the relevant tasks to pull this effort off.
Just pointing out that our WebTransport will be marked as "experimental" at first. This means that we won't make any guarantees regarding backwards-compatibility as the IETF draft evolves towards RFC status. If the changes between two draft versions are too large (and too cumbersome to support at the same time), we might decide to drop support for the older version.
The last remaining open item for this issue was " initial interop with js-libp2p (manual testing is ok for now)" which is accomplished by this demo: https://github.com/libp2p/js-libp2p-webtransport/tree/main/examples/fetch-file-from-kubo
Therefore, I am closing this issue. Follow up work is tracked in https://github.com/libp2p/go-libp2p/issues/1827