chore(roadmap): update

- Update target completions.
- Introduce QUIC hole punching item.
- Add address pipeline and AutoNATv2.
- Reword WebRTC item (not move to str0m) to entail both `/webrtc` and `/webrtc-direct`.

Pull-Request: #3958.
This commit is contained in:
Max Inden
2023-05-26 03:42:36 +02:00
committed by GitHub
parent 801023f468
commit a5a00205c2

View File

@ -12,7 +12,7 @@ roadmap](https://github.com/libp2p/specs/blob/master/ROADMAP.md).
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|-------------|-------------------|---------------------------------------------------|-----------------------------------------------------------------|------------| |--------------|-------------|-------------------|---------------------------------------------------|-----------------------------------------------------------------|------------|
| Optimization | in progress | Q1/2023 | https://github.com/libp2p/rust-libp2p/issues/2032 | [Cross behaviour communication](#cross-behaviour-communication) | | | Optimization | in progress | Q2/2023 | https://github.com/libp2p/rust-libp2p/issues/2032 | [Cross behaviour communication](#cross-behaviour-communication) | |
Kademlia client mode will enhance routing table health and thus have a positive impact on all Kademlia client mode will enhance routing table health and thus have a positive impact on all
Kademlia operations. Kademlia operations.
@ -21,10 +21,19 @@ Kademlia operations.
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|--------|-------------------|---------------------------------------------------|--------------|------------| |--------------|--------|-------------------|---------------------------------------------------|--------------|------------|
| Connectivity | todo | Q2/2023 | https://github.com/libp2p/rust-libp2p/issues/2883 | | | | Connectivity | todo | Q3/2023 | https://github.com/libp2p/rust-libp2p/issues/2883 | | |
We added alpha support for QUIC in Q4/2022 wrapping `quinn-proto`. Evaluate using `quinn` directly, replacing the wrapper. We added alpha support for QUIC in Q4/2022 wrapping `quinn-proto`. Evaluate using `quinn` directly, replacing the wrapper.
## QUIC - implement hole punching
| Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|--------|-------------------|---------------------------------------------------|--------------|------------|
| Connectivity | todo | Q3/2023 | https://github.com/libp2p/rust-libp2p/issues/2883 | | |
Add hole punching support for QUIC. See also [DCUtR specification on usage with
QUIC](https://github.com/libp2p/specs/blob/master/relay/DCUtR.md#the-protocol).
## Attempt to switch from webrtc-rs to str0m ## Attempt to switch from webrtc-rs to str0m
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
@ -33,11 +42,28 @@ We added alpha support for QUIC in Q4/2022 wrapping `quinn-proto`. Evaluate usin
Reduce maintenance burden and reduce dependency footprint. Reduce maintenance burden and reduce dependency footprint.
## Optimize Hole punching ## Address pipeline
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|--------|-------------------|----------|--------------|------------| |--------------|--------|-------------------|----------|--------------|------------|
| Optimization | todo | Q2/2023 | | | | | Connectivity | todo | Q4/2023 | | AutoNATv2 | AutoNATv2 |
Be smart on address prioritization. go-libp2p made a lot of progress here. Lots to learn. See https://github.com/libp2p/go-libp2p/issues/2229 and https://github.com/libp2p/rust-libp2p/issues/1896#issuecomment-1537774383.
## AutoNATv2
| Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|--------|-------------------|----------|------------------|------------------|
| Connectivity | todo | Q4/2023 | | Address pipeline | Address pipeline |
Implement the new AutoNAT v2 specification. See https://github.com/libp2p/specs/pull/538.
## Optimize Hole punching
| Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------+--------+-------------------+----------+--------------+------------|
| Optimization | todo | | | | |
We released hole punching support with [rust-libp2p We released hole punching support with [rust-libp2p
`v0.43.0`](https://github.com/libp2p/rust-libp2p/releases/tag/v0.43.0), see also `v0.43.0`](https://github.com/libp2p/rust-libp2p/releases/tag/v0.43.0), see also
@ -51,8 +77,8 @@ hole punching stack.
## Improved Wasm support ## Improved Wasm support
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|----------------------|--------|-------------------|---------------------------------------------------|--------------|----------------------------------------------| |----------------------+--------+-------------------+---------------------------------------------------+--------------+----------------------------------------------|
| Developer ergonomics | todo | Q3/2023 | https://github.com/libp2p/rust-libp2p/issues/2617 | | [WebRTC](#webrtc-support-browser-to-browser) | | Developer ergonomics | todo | | https://github.com/libp2p/rust-libp2p/issues/2617 | | [WebRTC](#webrtc-support-browser-to-browser) |
The project supports Wasm already today, though the developer experience is cumbersome at best. The project supports Wasm already today, though the developer experience is cumbersome at best.
Properly supporting Wasm opens rust-libp2p to a whole new set of use-cases. I would love for this to Properly supporting Wasm opens rust-libp2p to a whole new set of use-cases. I would love for this to
@ -60,15 +86,17 @@ happen earlier. Though (a) I think we should prioritize improving existing funct
functionality and (b) we don't have high demand for this feature from the community. (One could functionality and (b) we don't have high demand for this feature from the community. (One could
argue that that demand follows this roadmap item and not the other way round.) argue that that demand follows this roadmap item and not the other way round.)
## WebRTC support (browser-to-browser) ## WebRTC in the browser via WASM
| Category | Status | Target Completion | Tracking | Dependencies | Dependents | | Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|--------|-------------------|--------------------------------------------|-------------------------------------------------------------------------------------------|------------| |--------------+--------+-------------------+--------------------------------------------+-------------------------------------------------------------------------------------------+------------|
| Connectivity | todo | Q3/2023 | https://github.com/libp2p/specs/issues/475 | [Improved WASM support](#improved-wasm-support), https://github.com/libp2p/specs/pull/497 | | | Connectivity | todo | | https://github.com/libp2p/specs/issues/475 | [Improved WASM support](#improved-wasm-support), https://github.com/libp2p/specs/pull/497 | |
Use the browser's WebRTC stack to support
Once WebRTC for browser-to-server is complete, we can begin work on **browser-to-browser** and complete the WebRTC connectivity story. [`/webrtc`](https://github.com/libp2p/specs/blob/master/webrtc/webrtc.md) and
We need to improve rust-libp2p's WASM story first. [`/webrtc-direct`](https://github.com/libp2p/specs/blob/master/webrtc/webrtc-direct.md) from within
the browser using rust-libp2p compiled to WASM. This makes rust-libp2p a truly end-to-end solution,
enabling users to use rust-libp2p on both the client (browser) and server side.
## WebTransport ## WebTransport