rust-libp2p/README.md
ControlCplusControlV 2c65b0a601
README: Add fuel-core as a notable user (#3003)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-14 19:10:52 +11:00

99 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Central repository for work on libp2p
<a href="http://libp2p.io/"><img src="https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square" /></a>
[![dependency status](https://deps.rs/repo/github/libp2p/rust-libp2p/status.svg?style=flat-square)](https://deps.rs/repo/github/libp2p/rust-libp2p)
[![Crates.io](https://img.shields.io/crates/v/libp2p.svg)](https://crates.io/crates/libp2p)
[![docs.rs](https://img.shields.io/badge/api-rustdoc-blue.svg)](https://docs.rs/libp2p)
This repository is the central place for Rust development of the [libp2p](https://libp2p.io) spec.
## Getting started
- **Main documentation** can be found on https://docs.rs/libp2p.
- The **[examples](examples)** folder contains small binaries showcasing the
many protocols in this repository.
- For **security related issues** please reach out to security@libp2p.io. Please
do not file a public issue on GitHub.
- To **report bugs, suggest improvements or request new features** please open a
GitHub issue on this repository.
- For **rust-libp2p specific questions** please use the GitHub _Discussions_
forum https://github.com/libp2p/rust-libp2p/discussions.
- For **discussions and questions related to multiple libp2p implementations**
please use the libp2p _Discourse_ forum https://discuss.libp2p.io.
- For general project updates and discussions join the [biweekly libp2p Community
Calls](https://discuss.libp2p.io/t/libp2p-community-calls/1157).
## Repository Structure
The main components of this repository are structured as follows:
* `core/`: The implementation of `libp2p-core` with its `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 `ConnectionHandler` 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.
## 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.
## Maintainers
(In alphabetical order.)
- Elena Frank ([@elenaf9](https://github.com/elenaf9/))
- Max Inden ([@mxinden](https://github.com/mxinden/))
- Thomas Eizinger ([@thomaseizinger](https://github.com/thomaseizinger))
## Notable users
(open a pull request if you want your project to be added here)
- [COMIT](https://github.com/comit-network/xmr-btc-swap) - BitcoinMonero Cross-chain Atomic Swap.
- [Forest](https://github.com/ChainSafe/forest) - An implementation of Filecoin written in Rust.
- [fuel-core](https://github.com/FuelLabs/fuel-core) - A Rust implementation of the Fuel protocol.
- [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/).