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>
|
|
|
|
|
[](https://deps.rs/repo/github/libp2p/rust-libp2p)
|
2022-07-21 22:58:41 +02:00
|
|
|
|
[](https://crates.io/crates/libp2p)
|
|
|
|
|
[](https://docs.rs/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
|
|
|
|
|
2021-03-16 15:14:17 +01:00
|
|
|
|
## Getting started
|
2018-05-18 14:56:11 +02:00
|
|
|
|
|
2021-03-16 15:14:17 +01:00
|
|
|
|
- **Main documentation** can be found on https://docs.rs/libp2p.
|
2018-05-18 14:56:11 +02:00
|
|
|
|
|
2021-03-16 15:14:17 +01:00
|
|
|
|
- The **[examples](examples)** folder contains small binaries showcasing the
|
|
|
|
|
many protocols in this repository.
|
2018-01-23 19:21:41 +01:00
|
|
|
|
|
2022-08-08 10:57:11 +02:00
|
|
|
|
- For **security related issues** please reach out to security@libp2p.io. Please
|
2021-08-16 16:07:38 +02:00
|
|
|
|
do not file a public issue on GitHub.
|
|
|
|
|
|
|
|
|
|
- To **report bugs, suggest improvements or request new features** please open a
|
2021-03-16 15:14:17 +01:00
|
|
|
|
GitHub issue on this repository.
|
2019-04-16 15:13:44 +02:00
|
|
|
|
|
2021-03-16 15:14:17 +01:00
|
|
|
|
- For **rust-libp2p specific questions** please use the GitHub _Discussions_
|
|
|
|
|
forum https://github.com/libp2p/rust-libp2p/discussions.
|
2018-08-22 10:46:23 +02:00
|
|
|
|
|
2021-03-16 15:14:17 +01:00
|
|
|
|
- For **discussions and questions related to multiple libp2p implementations**
|
|
|
|
|
please use the libp2p _Discourse_ forum https://discuss.libp2p.io.
|
2021-02-01 16:37:19 +01:00
|
|
|
|
|
2022-01-28 18:46:59 +01:00
|
|
|
|
- For general project updates and discussions join the [biweekly libp2p Community
|
|
|
|
|
Calls](https://discuss.libp2p.io/t/libp2p-community-calls/1157).
|
|
|
|
|
|
2021-02-01 16:37:19 +01:00
|
|
|
|
## Repository Structure
|
|
|
|
|
|
|
|
|
|
The main components of this repository are structured as follows:
|
|
|
|
|
|
2022-03-05 20:29:15 +01:00
|
|
|
|
* `core/`: The implementation of `libp2p-core` with its `Transport` and
|
|
|
|
|
`StreamMuxer` API on which almost all other crates depend.
|
2021-02-01 16:37:19 +01:00
|
|
|
|
|
|
|
|
|
* `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`
|
2022-02-21 13:32:24 +01:00
|
|
|
|
with the central interfaces `NetworkBehaviour` and `ConnectionHandler` used
|
2021-02-01 16:37:19 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2021-04-06 14:10:25 +02:00
|
|
|
|
## Community Guidelines
|
|
|
|
|
|
|
|
|
|
The libp2p project operates under the [IPFS Code of
|
|
|
|
|
Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
|
|
|
|
|
|
|
|
|
|
> tl;dr
|
|
|
|
|
>
|
|
|
|
|
> - Be respectful.
|
|
|
|
|
> - We're here to help: abuse@ipfs.io
|
|
|
|
|
> - Abusive behavior is never tolerated.
|
|
|
|
|
> - Violations of this code may result in swift and permanent expulsion from the
|
|
|
|
|
> IPFS [and libp2p] community.
|
|
|
|
|
> - "Too long, didn't read" is not a valid excuse for not knowing what is in
|
|
|
|
|
> this document.
|
|
|
|
|
|
2021-10-02 02:07:42 +02:00
|
|
|
|
## Maintainers
|
|
|
|
|
|
2022-05-18 12:13:22 +02:00
|
|
|
|
(In alphabetical order.)
|
|
|
|
|
|
|
|
|
|
- Elena Frank ([@elenaf9](https://github.com/elenaf9/))
|
2021-10-02 02:07:42 +02:00
|
|
|
|
- Max Inden ([@mxinden](https://github.com/mxinden/))
|
|
|
|
|
- Thomas Eizinger ([@thomaseizinger](https://github.com/thomaseizinger))
|
|
|
|
|
|
2018-08-22 10:46:23 +02:00
|
|
|
|
## Notable users
|
|
|
|
|
|
|
|
|
|
(open a pull request if you want your project to be added here)
|
|
|
|
|
|
2022-09-24 13:49:45 +01:00
|
|
|
|
- [COMIT](https://github.com/comit-network/xmr-btc-swap) - Bitcoin–Monero Cross-chain Atomic Swap.
|
|
|
|
|
- [Forest](https://github.com/ChainSafe/forest) - An implementation of Filecoin written in Rust.
|
2022-10-14 02:10:52 -06:00
|
|
|
|
- [fuel-core](https://github.com/FuelLabs/fuel-core) - A Rust implementation of the Fuel protocol.
|
2022-09-24 13:49:45 +01:00
|
|
|
|
- [ipfs-embed](https://github.com/ipfs-rust/ipfs-embed) - A small embeddable ipfs implementation
|
|
|
|
|
used and maintained by [Actyx][https://www.actyx.com].
|
|
|
|
|
- [iroh](https://github.com/n0-computer/iroh) - Next-generation implementation of IPFS for Cloud & Mobile platforms.
|
|
|
|
|
- [Lighthouse](https://github.com/sigp/lighthouse) - Ethereum consensus client in Rust.
|
|
|
|
|
- [Locutus](https://github.com/freenet/locutus) - Global, observable, decentralized key-value store.
|
|
|
|
|
- [rust-ipfs](https://github.com/rs-ipfs/rust-ipfs) - IPFS implementation in Rust.
|
|
|
|
|
- [Starcoin](https://github.com/starcoinorg/starcoin) - A smart contract blockchain network that scales by layering.
|
|
|
|
|
- [Subspace](https://github.com/subspace/subspace) - Subspace Network reference implementation
|
|
|
|
|
- [Substrate](https://github.com/paritytech/substrate) - Framework for blockchain innovation,
|
|
|
|
|
used by [Polkadot](https://www.parity.io/technologies/polkadot/).
|