dotnet-libp2p
                                
                                 dotnet-libp2p copied to clipboard
                                
                                    dotnet-libp2p copied to clipboard
                            
                            
                            
                        A libp2p implementation for .NET in C#.
   
  
dotnet-libp2p
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.
Building the solution
The solution depends on external repositories.
git clone https://github.com/NethermindEth/dotnet-libp2p.git --recursive
cd ./src/libp2p/
dotnet build
dotnet test
Roadmap
🚧 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)
License
dotnet-libp2p is an open-source software licensed under the MIT.