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 | β¬ help wanted |
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.