2018-08-22 10:46:23 +02:00
|
|
|
# Central repository for work on libp2p
|
2017-11-08 13:03:59 +01:00
|
|
|
|
2018-11-24 12:39:13 +00:00
|
|
|
<a href="http://libp2p.io/"><img src="https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square" /></a>
|
|
|
|
<a href="http://webchat.freenode.net/?channels=%23libp2p"><img src="https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square" /></a>
|
2019-09-24 18:55:31 +02:00
|
|
|
<a href="https://riot.permaweb.io/#/room/#libp2p:permaweb.io"><img src="https://img.shields.io/badge/matrix-%23libp2p%3Apermaweb.io-blue.svg?style=flat-square" /> </a>
|
|
|
|
<a href="https://discord.gg/66KBrm2"><img src="https://img.shields.io/discord/475789330380488707?color=blueviolet&label=discord&style=flat-square" /></a>
|
2018-11-24 12:39:13 +00:00
|
|
|
[](https://deps.rs/repo/github/libp2p/rust-libp2p)
|
2018-11-13 19:47:28 +01:00
|
|
|
|
2018-08-22 10:46:23 +02:00
|
|
|
This repository is the central place for Rust development of the [libp2p](https://libp2p.io) spec.
|
2017-11-08 13:03:59 +01:00
|
|
|
|
2019-02-02 05:19:07 -05:00
|
|
|
**Warning**: While we are trying our best to be compatible with other libp2p implementations, we
|
2018-12-17 09:41:56 +00:00
|
|
|
cannot guarantee that this is the case considering the lack of a precise libp2p specifications.
|
2018-11-28 19:10:04 +01:00
|
|
|
|
2018-08-22 10:46:23 +02:00
|
|
|
## Documentation
|
2018-05-18 14:56:11 +02:00
|
|
|
|
2019-04-16 15:13:44 +02:00
|
|
|
How to use the library?
|
2018-05-18 14:56:11 +02:00
|
|
|
|
2019-04-16 15:13:44 +02:00
|
|
|
- Main documentation: https://docs.rs/libp2p
|
2018-01-23 19:21:41 +01:00
|
|
|
|
2019-04-16 15:13:44 +02:00
|
|
|
Where to ask questions?
|
|
|
|
|
|
|
|
- In the Rust section of https://discuss.libp2p.io.
|
|
|
|
- In the #libp2p IRC channel on freenode.
|
|
|
|
- By opening an issue in this repository.
|
2018-08-22 10:46:23 +02:00
|
|
|
|
2021-02-01 16:37:19 +01:00
|
|
|
|
|
|
|
## Repository Structure
|
|
|
|
|
|
|
|
The main components of this repository are structured as follows:
|
|
|
|
|
|
|
|
* `core/`: The implementation of `libp2p-core` with its `Network`,
|
|
|
|
`Transport` and `StreamMuxer` API on which almost all other crates depend.
|
|
|
|
|
|
|
|
* `transports/`: Implementations of transport protocols (e.g. TCP) and protocol upgrades
|
|
|
|
(e.g. for authenticated encryption, compression, ...) based on the `libp2p-core` `Transport`
|
|
|
|
API .
|
|
|
|
|
|
|
|
* `muxers/`: Implementations of the `StreamMuxer` interface of `libp2p-core`,
|
|
|
|
e.g. (sub)stream multiplexing protocols on top of (typically TCP) connections.
|
|
|
|
Multiplexing protocols are (mandatory) `Transport` upgrades.
|
|
|
|
|
|
|
|
* `swarm/`: The implementation of `libp2p-swarm` building on `libp2p-core`
|
|
|
|
with the central interfaces `NetworkBehaviour` and `ProtocolsHandler` used
|
|
|
|
to implement application protocols (see `protocols/`).
|
|
|
|
|
|
|
|
* `protocols/`: Implementations of application protocols based on the
|
|
|
|
`libp2p-swarm` APIs.
|
|
|
|
|
|
|
|
* `misc/`: Utility libraries.
|
|
|
|
|
|
|
|
* `examples/`: Worked examples of built-in application protocols (see `protocols/`)
|
|
|
|
with common `Transport` configurations.
|
|
|
|
|
2018-08-22 10:46:23 +02:00
|
|
|
## Notable users
|
|
|
|
|
|
|
|
(open a pull request if you want your project to be added here)
|
|
|
|
|
|
|
|
- https://github.com/paritytech/polkadot
|
2018-10-30 10:48:24 +01:00
|
|
|
- https://github.com/paritytech/substrate
|
2019-03-29 03:40:29 +11:00
|
|
|
- https://github.com/sigp/lighthouse
|
2019-05-22 11:04:49 +02:00
|
|
|
- https://github.com/golemfactory/golem-libp2p
|
2019-05-24 04:29:34 +10:00
|
|
|
- https://github.com/comit-network/comit-rs
|
2020-06-05 10:56:26 +02:00
|
|
|
- https://github.com/rs-ipfs/rust-ipfs
|
2020-06-15 22:06:29 +08:00
|
|
|
- https://github.com/marcopoloprotocol/marcopolo
|