61个版本 (重大更新)

0.45.0 2024年8月9日
0.44.2 2024年5月1日
0.44.1 2023年12月9日
0.44.0 2023年11月5日
0.6.0 2019年3月29日

#954网络编程

Download history 45795/week @ 2024-04-27 43663/week @ 2024-05-04 51675/week @ 2024-05-11 47688/week @ 2024-05-18 56606/week @ 2024-05-25 53768/week @ 2024-06-01 45148/week @ 2024-06-08 47267/week @ 2024-06-15 51702/week @ 2024-06-22 44020/week @ 2024-06-29 42285/week @ 2024-07-06 58426/week @ 2024-07-13 59679/week @ 2024-07-20 53871/week @ 2024-07-27 56868/week @ 2024-08-03 65518/week @ 2024-08-10

每月245,426次下载
用于 220 个包 (直接使用9个)

MIT 许可证

800KB
16K SLoC

libp2p工作的中心仓库

dependency status Crates.io docs.rs docs.rs master

此仓库是Rust对libp2p规范的Rust开发中心。

入门

仓库结构

此仓库的主要组件结构如下

  • core/:实现了libp2p-core,包括其TransportStreamMuxer API,几乎所有其他crate都依赖于它。

  • transports/:基于 libp2p-coreTransport API 实现传输协议(例如 TCP)和协议升级(例如认证加密、压缩等)。

  • muxers/:实现 libp2p-coreStreamMuxer 接口,例如在(通常是 TCP)连接之上实现的(子)流多路复用协议。多路复用协议是(强制性的)Transport 升级。

  • swarm/:在 libp2p-core 上构建 libp2p-swarm 的实现,使用了中心接口 NetworkBehaviourConnectionHandler,这些接口用于实现应用协议(见 protocols/)。

  • protocols/:基于 libp2p-swarm API 的应用协议实现。

  • misc/:实用库。

  • libp2p/examples/:内置应用协议的工作示例(见 protocols/)和常见的 Transport 配置。

社区指南

libp2p 项目遵循 IPFS 行为准则

tl;dr

  • 请尊重他人。
  • 我们在这里提供帮助: [email protected]
  • 容忍任何形式的辱骂行为。
  • 违反本准则可能会导致迅速且永久地被排除出 IPFS [和 libp2p] 社区。
  • "太长了,没有读" 不是不了解本文件内容的合理借口。

维护者

(按字母顺序排列。)

知名用户

(如果您想将自己的项目添加到这里,请提交一个 pull request)

  • COMIT - Bitcoin–Monero 跨链原子交换。
  • Forest - Filecoin 的 Rust 实现。
  • fuel-core - Fuel 协议的 Rust 实现。
  • HotShot - 由 Espresso Systems 开发的 Rust 编写的去中心化 sequencer。
  • ipfs-embed - 由 Actyx 使用和维护的小型可嵌入的 ipfs 实现。
  • Homestar - Fission 维护和使用的 InterPlanetary Virtual Machine (IPVM) 实现。
  • beetle - 为云和移动平台实现的下一代 IPFS 实现。
  • Lighthouse - Rust 编写的 Ethereum 共识客户端。
  • 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:

实现了 Identify 协议。

本协议的实现定期在已建立的连接上交换 Info 消息。

在新建的连接上至少发送一个身份验证请求,之后的行为不会保持连接活跃。

重要差异

  • 与其他协议使用Identify 与一些其他libp2p实现不同,rust-libp2p 并不将Identify视为核心协议。这意味着其他协议不能依赖于Identify的存在,需要手动将其与Identify连接起来才能利用其功能。

用法

Behaviour 结构体实现了一个 NetworkBehaviour,该结构体在每个建立的连接上协商和执行协议,并发出 Event

依赖项

~8–16MB
~207K SLoC