The project aims to implement libp2p to unlock building .NET peer-to-peer applications using a battle-tested specification of network communication of the new age.
As an application developer, you may consider reading quick start. As a stack implementer, you may be interested in more advanced tutorials.
Contributions are welcome, kindly check the issues tab, everything there if not assigned to a person can be taken into work. More details in CONTRIBUTING.md.
The solution depends on external repositories.
git clone https://github.com/NethermindEth/dotnet-libp2p.git --recursive
cd ./src/libp2p/
dotnet build
dotnet test
🚧 The library is not stable and under heavy development. Consider the beta milestone as a reflection of readiness for production 🚧
The target is to provide a performant well-tested implementation of a wide range of protocols that works on multiple platforms, with high throughput and low memory profile.
Protocol | Version | Status |
---|---|---|
TCP | tcp | ✅ |
QUIC | quic-v1 | ✅ |
multistream-select | /multistream/1.0.0 | ✅ |
plaintext | /plaintext/2.0.0 | ✅ |
noise | /noise | ✅ |
tls | /tls/1.0.0 | 🚧 |
WebTransport | ⬜ help wanted | |
yamux | /yamux/1.0.0 | ✅ |
Circuit Relay | /libp2p/circuit/relay/0.2.0/* | ⬜ help wanted |
hole punching | ⬜ help wanted | |
Application layer | ||
Identify | /ipfs/id/1.0.0 | ✅ |
ping | /ipfs/ping/1.0.0 | ✅ |
pubsub | /floodsub/1.0.0 | ✅ |
/meshsub/1.0.0 | ✅ | |
/meshsub/1.1.0 | 🚧 | |
/meshsub/1.2.0 | ⬜ | |
Discovery | ||
mDns | basic | ✅ |
DNS-SD | 🚧 | |
discv5 | 5.1 | 🚧 help wanted |
⬜ - not yet implemented
🚧 - work in progress
✅ - basic support implemented
No plans for: mplex, quic(draft-29)
dotnet-libp2p is an open-source software licensed under the MIT.