I built this to create a highly scalable and performant peer-to-peer (P2P) network using Rust and the Litep2p library. This project aims to showcase the flexibility of Litep2p by implementing multiple transport protocols (TCP and QUIC), event-driven architecture, and a range of built-in features.
One cool feature is... Multi-Transport Support! Our Litep2P Network uses both TCP and QUIC transports to ensure seamless communication between nodes. We also have:
- Built-in support for IPFS PING protocol
- Efficient event-driven architecture using Tokio and Futures libraries
- Request-response protocol with configurable settings
- Integration with existing networks like InterPlanetary File System (IPFS)
- Advanced security features like encryption and authentication
- Support for multiple network protocols (e.g., TCP, QUIC, WebSockets)
To get started, make sure you have Rust and Cargo installed on your machine. Then, run the following command:
cargo build --release
This will compile the project in release mode.
Run the project using:
cargo run
You should see some logs indicating that the P2P node is running and listening for incoming connections.
The event loop allows our P2P node to handle events from various sources, such as new connections, ping requests, or request-response messages. You can see this in action by running the project and observing the console output.
Contributions are welcome! If you'd like to contribute to this project, please submit a pull request with your changes. I'm thinking about adding support for other network protocols; maybe you have an idea or two?
This project is licensed under the Apache License 2.0. See LICENSE
in the root directory.
- Peer-to-Peer (P2P)
- Litep2p
- Rust
- Tokio
- Futures
- QUIC
- TCP