7个不稳定版本
0.4.0 | 2023年6月20日 |
---|---|
0.3.0 | 2022年5月31日 |
0.2.1 | 2020年1月24日 |
0.1.2 | 2019年5月15日 |
0.1.0 | 2019年1月2日 |
#1797 in 网络编程
每月208,071次下载
用于 531 个包(21 直接)
10KB
161 行
libp2p工作的中心仓库
此仓库是libp2p规范Rust开发的中心地点。
入门
-
主要文档可以在https://docs.rs/libp2p找到。
-
示例文件夹中的 示例 包含展示此仓库中许多协议的小二进制文件。
-
对于 安全相关的问题 请提交一个私有的安全漏洞报告。请勿在GitHub上提交公开问题。
-
为了 报告错误、建议改进或请求新功能 请在此仓库上打开GitHub问题。
-
对于 rust-libp2p特定问题 请使用GitHub 讨论 论坛 https://github.com/libp2p/rust-libp2p/discussions。
-
对于 与多个libp2p实现相关的讨论和问题 请使用libp2p Discourse 论坛 https://discuss.libp2p.io。
-
对于同步讨论,请加入公开rust-libp2p维护者电话会议或每周两次的libp2p社区电话会议。
仓库结构
此仓库的主要组件结构如下
-
core/
: 实现libp2p-core
的库,包括其Transport
和StreamMuxer
API,几乎所有其他包都依赖于这些API。 -
transports/
:基于libp2p-core
的Transport
API 实现传输协议(例如 TCP)和协议升级(例如用于认证加密、压缩等)。 -
muxers/
:实现libp2p-core
的StreamMuxer
接口,例如在(通常是 TCP)连接之上实现的(子)流复用协议。复用协议是(强制性的)Transport
升级。 -
swarm/
:基于libp2p-core
的libp2p-swarm
实现,使用核心接口NetworkBehaviour
和ConnectionHandler
来实现应用协议(参见protocols/
)。 -
protocols/
:基于libp2p-swarm
API 的应用协议实现。 -
misc/
:实用库。 -
libp2p/examples/
:内置应用协议(参见protocols/
)的工作示例,具有常见的Transport
配置。
社区指南
libp2p 项目遵循 IPFS 行为准则。
tl;dr
- 请保持尊重。
- 我们在这里提供帮助: [email protected]
- 容忍任何形式的恶意行为。
- 违反本准则可能会导致迅速且永久地从 IPFS [和 libp2p] 社区中开除。
- "太长了,没看" 不是不了解本文件的合理借口。
维护者
(按字母顺序排列。)
- João Oliveira (@jxs)
- Thomas Eizinger (@thomaseizinger)
知名用户
(如果您想将项目添加到这里,请提交一个 pull request)
- COMIT - 比特币–门罗币跨链原子交换。
- Forest - 使用 Rust 编写的 Filecoin 实现。
- fuel-core - Rust 中的 Fuel 协议实现。
- HotShot - 由 Espresso Systems 开发的 Rust 驱动的去中心化 sequencer。
- ipfs-embed - 由 Actyx 使用和维护的小型嵌入式 ipfs 实现。
- Homestar - 由 Fission 使用和维护的 InterPlanetary Virtual Machine (IPVM) 实现。
- beetle - 针对 Cloud & Mobile 平台的下一代 IPFS 实现。
- Lighthouse - Rust 中的以太坊共识客户端。
- Locutus - 全球、可观察、去中心化的键值存储。
- OpenMina - 浏览器中的 Mina Rust 实现。
- rust-ipfs - Rust 中的 IPFS 实现。
- Safe Network - Rust 中的 Safe Network 实现。
- Starcoin - 通过分层扩展的智能合约区块链网络。
- Subspace - Subspace 网络参考实现
- Substrate - 区块链创新的框架,由 Polkadot 使用。
- Taple - 由 OpenCanarias 开发的可持续 DLT,用于资产和流程的可追溯性。
lib.rs
:
本库提供了 RwStreamSink
类型。它包装了一个 Stream
和 Sink
,该包装可以生成和接受字节数组,并实现了 AsyncRead
和 AsyncWrite
。
每次调用 AsyncWrite::poll_write
都会将一个数据包发送到接收器。调用 AsyncRead::poll_read
将从流的传入数据包中读取。
依赖关系
~1–1.7MB
~33K SLoC