45个重大版本发布
0.46.0 | 2024年8月9日 |
---|---|
0.45.1 | 2023年11月22日 |
0.44.0 | 2023年6月20日 |
0.43.1 | 2023年3月29日 |
0.6.0 | 2019年3月29日 |
1469 在 网络编程 中排名
每月下载量 246,141
在 217 个crate(2个直接使用) 中使用
800KB
16K SLoC
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,几乎所有其他crate都依赖于它。 -
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] 社区中除名。
- "太长,没看" 不是不了解本文件的正当理由。
维护者
(按字母顺序排列。)
- Guillaume Michel (@guillaumemichel)
- João Oliveira (@jxs)
知名用户
(如果您想在此处添加您的项目,请提交一个 pull request)
- COMIT - Bitcoin–Monero 跨链原子交换。
- Forest - 使用 Rust 编写的 Filecoin 实现。
- fuel-core - Fuel 协议的 Rust 实现。
- HotShot - 由 Espresso Systems 开发的 Rust 语言编写的去中心化 sequencer。
- ipfs-embed - 由 Actyx 使用和维护的小型可嵌入 ipfs 实现。
- Homestar - 由 Fission 使用和维护的星际虚拟机(IPVM)实现。
- beetle - 用于云和移动平台的下一代 IPFS 实现。
- Lighthouse - Rust 编写的以太坊共识客户端。
- Locutus - 全球、可观察的分布式键值存储。
- OpenMina - 在浏览器中运行的 Mina Rust 实现。
- rust-ipfs - Rust 中的 IPFS 实现。
- Safe Network - Rust 中的 Safe Network 实现。
- Starcoin - 通过分层扩展的智能合约区块链网络。
- Subspace - Subspace 网络参考实现。
- Substrate - 区块链创新框架,由 Polkadot 使用。
- Taple - 由 OpenCanarias 提供的可持续的 DLT,用于资产和流程的可追溯性。
- Ceylon - 一个多代理系统(MAS)开发框架。
lib.rs
:
libp2p 特定的 mDNS 协议的实现。
mDNS 是由 RFC 6762 定义的协议,允许查询与特定域名对应的节点。
在 libp2p 的上下文中,mDNS 协议用于发现本地网络中支持 libp2p 的其他节点。
用法
根据启用的功能,此 crate 提供了 Mdns
和 TokioMdns
,实现了 NetworkBehaviour
特性。该结构将自动发现本地网络上的其他 libp2p 节点。
依赖关系
~10–42MB
~682K SLoC