diff --git a/docs/introduction.rst b/docs/introduction.rst index c8fa855d..31169b30 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -1,12 +1,80 @@ Introduction ============ -py-libp2p is the Python implementation of the libp2p networking stack. -It hopes to someday be fully compatible with other implementations of libp2p. +What is Py-libp2p? +------------------ -This project is still in its early stages and is not yet ready for production use. +Py-libp2p is the Python implementation of the libp2p networking stack, a modular peer-to-peer networking framework. It provides a robust foundation for building decentralized applications and protocols in Python, enabling developers to create resilient, secure, and efficient peer-to-peer networks. + +The Libp2p Ecosystem +-------------------- + +Libp2p is a collection of networking protocols and specifications that form the foundation of many decentralized systems. Py-libp2p is part of this broader ecosystem, which includes implementations in various languages: + +* `js-libp2p `_ - JavaScript implementation +* `go-libp2p `_ - Go implementation +* `rust-libp2p `_ - Rust implementation + +While each implementation has its strengths, Py-libp2p offers unique advantages for Python developers and researchers. + +Why Choose Py-libp2p? +--------------------- + +Py-libp2p is particularly well-suited for: + +* **Protocol Research and Development**: Python's simplicity and readability make it ideal for experimenting with new protocols and network topologies. +* **Rapid Prototyping**: Quickly build and test peer-to-peer applications with Python's extensive ecosystem. +* **Educational Purposes**: The Python implementation is often more approachable for learning libp2p concepts. +* **Integration with Python Projects**: Seamlessly integrate libp2p functionality into existing Python applications. + +Current Capabilities +-------------------- + +Py-libp2p currently supports these core libp2p features: + +* **Transports**: TCP, QUIC (near completion, in final testing phase) +* **Protocols**: Gossipsub v1.1, Identify, Ping +* **Security**: Noise protocol framework +* **Connection Management**: Connection multiplexing + +Features in Development +----------------------- + +Several important features are currently being actively developed: + +* **NAT Traversal**: AutoNAT and relay-based hole punching under development +* **WebSocket Transport**: Design and scoping discussions underway +* **Peer Discovery**: + + * **mDNS**: Implementation planned for upcoming sprints + * **Bootstrap**: Modular bootstrap system planned after mDNS implementation + +Use Cases +--------- + +Py-libp2p can be used to build various decentralized applications: + +* Distributed file storage systems +* Decentralized social networks +* IoT device networks +* Blockchain and cryptocurrency networks +* Research and academic projects +* Private peer-to-peer messaging systems + +Getting Started +--------------- + +Ready to start building with Py-libp2p? Check out our :doc:`getting_started` guide to begin your journey. For more detailed information about specific features and APIs, explore our :doc:`examples` and :doc:`API documentation `. + +Contributing +------------ + +We welcome contributions from developers of all experience levels! Whether you're fixing bugs, adding features, or improving documentation, your help is valuable. See our :doc:`contributing` guide for details on how to get involved. Further Reading --------------- + * `libp2p main site `_ * `Tutorial: Introduction to libp2p `_ +* `libp2p Specification `_ +* `libp2p Documentation `_ diff --git a/newsfragments/560.docs.rst b/newsfragments/560.docs.rst new file mode 100644 index 00000000..65a80919 --- /dev/null +++ b/newsfragments/560.docs.rst @@ -0,0 +1 @@ +Expand the Introduction section in the documentation with a detailed overview of Py-libp2p.