Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROADMAP: Follow ups on recent review #3062

Merged
merged 7 commits into from
Oct 26, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 8 additions & 20 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
Below is a high level roadmap for the rust-libp2p project. Items are ordered by priority (high to
low).

For a more detailed view see https://github.com/orgs/libp2p/projects/4/views/1.
This is a living document. Input is always welcome e.g. via GitHub issues or pull requests.

This is the roadmap of the Rust implementation of libp2p. See also the [general libp2p project
roadmap](https://github.com/libp2p/specs/blob/master/ROADMAP.md).

<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
**Table of Contents**

- [rust-libp2p Roadmap](#rust-libp2p-roadmap)
- [TLS support](#tls-support)
- [Experimental QUIC support](#experimental-quic-support)
- [WebRTC support (browser-to-server)](#webrtc-support-browser-to-server)
- [Cross Behaviour communication](#cross-behaviour-communication)
Expand All @@ -25,29 +26,16 @@ For a more detailed view see https://github.com/orgs/libp2p/projects/4/views/1.

<!-- markdown-toc end -->

## TLS support

| Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|-------------|-------------------|-------------------------------------------------|------------------------------------|------------|
| Connectivity | In progress | Q4/2022 | https://github.com/libp2p/rust-libp2p/pull/2945 | [QUIC](#experimental-quic-support) | |


This allows us to secure both TCP and QUIC connections using TLS. This is a requirement for QUIC
support. Running TLS on top of TCP is a nice to have, since we already have noise.
thomaseizinger marked this conversation as resolved.
Show resolved Hide resolved

## Experimental QUIC support
## QUIC support

| Category | Status | Target Completion | Tracking | Dependencies | Dependents |
|--------------|-------------|-------------------|---------------------------------------------------|---------------------------------------------------------------------|------------|
| Connectivity | In progress | Q4/2022 | https://github.com/libp2p/rust-libp2p/issues/2883 | [TLS](#tls-support), https://github.com/libp2p/test-plans/issues/53 | |
BigLep marked this conversation as resolved.
Show resolved Hide resolved

QUIC has been on the roadmap for a long time. It enables various performance improvements as well as
higher hole punching success rates. We are close to finishing a first version with
https://github.com/libp2p/rust-libp2p/pull/2289.

Long term there is lots more to do, see tracking issue
https://github.com/libp2p/rust-libp2p/issues/2883. Though this will be tackled as a new roadmap
item.
https://github.com/libp2p/rust-libp2p/pull/2289. We will improve from there. See tracking issue
https://github.com/libp2p/rust-libp2p/issues/2883.

## WebRTC support (browser-to-server)

Expand All @@ -71,7 +59,7 @@ stack. Though that should only happen after improved WASM support, see below.
| Developer ergonomics | todo | Q1/2023 | https://github.com/libp2p/rust-libp2p/issues/2680 | https://github.com/libp2p/rust-libp2p/issues/2832 | [Kademlia client mode](#kademlia-client-mode) |

Today `NetworkBehaviour` implementations like Kademlia, GossipSub or Circuit Relay v2 can not
communicate with each other, i.e. can not make use of information known by another
communicate with each other, i.e. cannot make use of information known by another
`NetworkBehaviour` implementation. Users need to write the wiring code by hand to e.g. enable
Kademlia to learn protocols supported by a remote peer from Identify.

Expand Down