Skip to content

Commit ded8b2d

Browse files
authored
Doc: expanding the introduction section (libp2p#566)
1 parent 6054fd7 commit ded8b2d

File tree

2 files changed

+72
-3
lines changed

2 files changed

+72
-3
lines changed

docs/introduction.rst

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,80 @@
11
Introduction
22
============
33

4-
py-libp2p is the Python implementation of the libp2p networking stack.
5-
It hopes to someday be fully compatible with other implementations of libp2p.
4+
What is Py-libp2p?
5+
------------------
66

7-
This project is still in its early stages and is not yet ready for production use.
7+
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.
8+
9+
The Libp2p Ecosystem
10+
--------------------
11+
12+
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:
13+
14+
* `js-libp2p <https://github.com/libp2p/js-libp2p>`_ - JavaScript implementation
15+
* `go-libp2p <https://github.com/libp2p/go-libp2p>`_ - Go implementation
16+
* `rust-libp2p <https://github.com/libp2p/rust-libp2p>`_ - Rust implementation
17+
18+
While each implementation has its strengths, Py-libp2p offers unique advantages for Python developers and researchers.
19+
20+
Why Choose Py-libp2p?
21+
---------------------
22+
23+
Py-libp2p is particularly well-suited for:
24+
25+
* **Protocol Research and Development**: Python's simplicity and readability make it ideal for experimenting with new protocols and network topologies.
26+
* **Rapid Prototyping**: Quickly build and test peer-to-peer applications with Python's extensive ecosystem.
27+
* **Educational Purposes**: The Python implementation is often more approachable for learning libp2p concepts.
28+
* **Integration with Python Projects**: Seamlessly integrate libp2p functionality into existing Python applications.
29+
30+
Current Capabilities
31+
--------------------
32+
33+
Py-libp2p currently supports these core libp2p features:
34+
35+
* **Transports**: TCP, QUIC (near completion, in final testing phase)
36+
* **Protocols**: Gossipsub v1.1, Identify, Ping
37+
* **Security**: Noise protocol framework
38+
* **Connection Management**: Connection multiplexing
39+
40+
Features in Development
41+
-----------------------
42+
43+
Several important features are currently being actively developed:
44+
45+
* **NAT Traversal**: AutoNAT and relay-based hole punching under development
46+
* **WebSocket Transport**: Design and scoping discussions underway
47+
* **Peer Discovery**:
48+
49+
* **mDNS**: Implementation planned for upcoming sprints
50+
* **Bootstrap**: Modular bootstrap system planned after mDNS implementation
51+
52+
Use Cases
53+
---------
54+
55+
Py-libp2p can be used to build various decentralized applications:
56+
57+
* Distributed file storage systems
58+
* Decentralized social networks
59+
* IoT device networks
60+
* Blockchain and cryptocurrency networks
61+
* Research and academic projects
62+
* Private peer-to-peer messaging systems
63+
64+
Getting Started
65+
---------------
66+
67+
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 <libp2p>`.
68+
69+
Contributing
70+
------------
71+
72+
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.
873

974
Further Reading
1075
---------------
76+
1177
* `libp2p main site <https://libp2p.io/>`_
1278
* `Tutorial: Introduction to libp2p <https://proto.school/introduction-to-libp2p>`_
79+
* `libp2p Specification <https://github.com/libp2p/specs>`_
80+
* `libp2p Documentation <https://docs.libp2p.io/>`_

newsfragments/560.docs.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Expand the Introduction section in the documentation with a detailed overview of Py-libp2p.

0 commit comments

Comments
 (0)