Skip to content

Commit

Permalink
update Feature Breakdown to more closely match official implementatio…
Browse files Browse the repository at this point in the history
…ns list of features
  • Loading branch information
pacrob committed Feb 25, 2025
1 parent 0c4ea50 commit 65bc17a
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 92 deletions.
180 changes: 89 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,102 +21,100 @@ Read more in the [documentation on ReadTheDocs](https://py-libp2p.readthedocs.io

## Maintainers

Currently maintained by [@pacrob](https://github.com/pacrob) and [@dhuseby](https://github.com/dhuseby), looking for assistance!
Currently maintained by [@pacrob](https://github.com/pacrob), [@seetadev](https://github.com/seetadev) and [@dhuseby](https://github.com/dhuseby), looking for assistance!

## Feature Breakdown

py-libp2p aims for conformity with [the standard libp2p modules](https://libp2p.io/implementations/). Below is a breakdown of the modules we have developed, are developing, and may develop in the future.

> Legend: ✅: Done   🛠️: In Progress   🚫: Missing   ❌: Not planned
| libp2p Node | Status |
| ------------ | :----: |
| **`libp2p`** ||

| Core Protocols | Status |
| -------------- | :----: |
| **`Ping`** ||
| **`Identify`** ||

| Transport Protocols | Status |
| ------------------- | :----: |
| **`TCP`** ||
| **`QUIC`** | 🛠️ |
| **`UDP`** | 🚫 |
| **`WebSockets`** ||
| **`UTP`** ||
| **`WebRTC`** ||
| **`SCTP`** ||
| **`Tor`** ||
| **`i2p`** ||
| **`cjdns`** ||
| **`Bluetooth LE`** ||
| **`Audio TP`** ||
| **`Zerotier`** ||

| Stream Muxers | Status |
| ---------------- | :----: |
| **`multiplex`** ||
| **`yamux`** | 🚫 |
| **`benchmarks`** ||
| **`muxado`** ||
| **`spdystream`** ||
| **`spdy`** ||
| **`http2`** ||
| **`QUIC`** ||

| Protocol Muxers | Status |
| ----------------- | :----: |
| **`multiselect`** ||

| Switch (Swarm) | Status |
| ------------------ | :----: |
| **`Switch`** ||
| **`Dialer stack`** ||

| Peer Discovery | Status |
| -------------------- | :----: |
| **`bootstrap list`** | 🚫 |
| **`Kademlia DHT`** ||
| **`mDNS`** ||
| **`PEX`** ||
| **`DNS`** ||

| Content Routing | Status |
| ------------------ | :----: |
| **`Kademlia DHT`** ||
| **`floodsub`** ||
| **`gossipsub`** ||
| **`PHT`** ||

| Peer Routing | Status |
| ------------------ | :----: |
| **`Kademlia DHT`** ||
| **`floodsub`** ||
| **`gossipsub`** ||
| **`PHT`** ||

| NAT Traversal | Status |
| ------------------------ | :----: |
| **`nat-pmp`** ||
| **`upnp`** ||
| **`ext addr discovery`** ||
| **`STUN-like`** ||
| **`line-switch relay`** ||
| **`pkt-switch relay`** ||

| Exchange | Status |
| ---------------- | :----: |
| **`HTTP`** ||
| **`Bitswap`** ||
| **`Bittorrent`** ||

| Consensus | Status |
| -------------- | :----: |
| **`Paxos`** ||
| **`Raft`** ||
| **`PBTF`** ||
| **`Nakamoto`** ||
> Legend: ✅: Done  🛠️: In Progress/Usable  🌱 Prototype/Unstable  ❌: Missing
______________________________________________________________________

### Transports

| **Transport** | **Status** | **Source** |
| -------------------------------------- | :--------: | :---------------------------------------------------------------------------------: |
| **`libp2p-tcp`** || [source](https://github.com/libp2p/py-libp2p/blob/main/libp2p/transport/tcp/tcp.py) |
| **`libp2p-quic`** | 🌱 | |
| **`libp2p-websocket`** || |
| **`libp2p-webrtc-browser-to-server`** || |
| **`libp2p-webrtc-private-to-private`** || |

______________________________________________________________________

### NAT Traversal

| **NAT Traversal** | **Status** |
| ----------------------------- | :--------: |
| **`libp2p-circuit-relay-v2`** ||
| **`libp2p-autonat`** ||
| **`libp2p-hole-punching`** ||

______________________________________________________________________

### Secure Communication

| **Secure Communication** | **Status** | **Source** |
| ------------------------ | :--------: | :---------------------------------------------------------------------------: |
| **`libp2p-noise`** | 🌱 | [source](https://github.com/libp2p/py-libp2p/tree/main/libp2p/security/noise) |
| **`libp2p-tls`** || |

______________________________________________________________________

### Discovery

| **Discovery** | **Status** |
| -------------------- | :--------: |
| **`bootstrap`** ||
| **`random-walk`** ||
| **`mdns-discovery`** ||
| **`rendezvous`** ||

______________________________________________________________________

### Peer Routing

| **Peer Routing** | **Status** |
| -------------------- | :--------: |
| **`libp2p-kad-dht`** ||

______________________________________________________________________

### Publish/Subscribe

| **Publish/Subscribe** | **Status** | **Source** |
| ---------------------- | :--------: | :--------------------------------------------------------------------------------: |
| **`libp2p-floodsub`** || [source](https://github.com/libp2p/py-libp2p/blob/main/libp2p/pubsub/floodsub.py) |
| **`libp2p-gossipsub`** || [source](https://github.com/libp2p/py-libp2p/blob/main/libp2p/pubsub/gossipsub.py) |

______________________________________________________________________

### Stream Muxers

| **Stream Muxers** | **Status** | **Status** |
| ------------------ | :--------: | :----------------------------------------------------------------------------------------: |
| **`libp2p-yamux`** | 🌱 | |
| **`libp2p-mplex`** | 🛠️ | [source](https://github.com/libp2p/py-libp2p/blob/main/libp2p/stream_muxer/mplex/mplex.py) |

______________________________________________________________________

### Storage

| **Storage** | **Status** |
| ------------------- | :--------: |
| **`libp2p-record`** ||

______________________________________________________________________

### General Purpose Utilities & Datatypes

| **Utility/Datatype** | **Status** | **Source** |
| -------------------- | :--------: | :-------------------------------------------------------------------------: |
| **`libp2p-ping`** || [source](https://github.com/libp2p/py-libp2p/blob/main/libp2p/host/ping.py) |
| **`libp2p-peer`** || [source](https://github.com/libp2p/py-libp2p/tree/main/libp2p/peer) |

______________________________________________________________________

## Explanation of Basic Two Node Communication

Expand Down
1 change: 1 addition & 0 deletions newsfragments/498.docs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Updates ``Feature Breakdown`` in ``README`` to more closely match the list of standard modules.
1 change: 0 additions & 1 deletion newsfragments/513.bugfix.rst
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
Fixed import path in the examples to use updated `net_stream` module path, resolving ModuleNotFoundError when running the examples.

0 comments on commit 65bc17a

Please sign in to comment.