77 个版本 (41 个破坏性版本)

0.42.0 2024年8月9日
0.41.3 2024年7月5日
0.41.2 2023年12月4日
0.41.1 2023年11月12日
0.6.0 2019年3月29日

#1997网络编程

Download history 57053/week @ 2024-05-03 63480/week @ 2024-05-10 62055/week @ 2024-05-17 74376/week @ 2024-05-24 62706/week @ 2024-05-31 62146/week @ 2024-06-07 61136/week @ 2024-06-14 62022/week @ 2024-06-21 49631/week @ 2024-06-28 52945/week @ 2024-07-05 68124/week @ 2024-07-12 69655/week @ 2024-07-19 67738/week @ 2024-07-26 64652/week @ 2024-08-02 92938/week @ 2024-08-09 68949/week @ 2024-08-16

306,864 每月下载量
用于 365 个crate(57 个直接使用)

MIT 许可证

405KB
7.5K SLoC

libp2p工作的中心仓库

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

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

入门

仓库结构

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

  • core/:包含 libp2p-core 的实现,以及其 TransportStreamMuxer API,这是几乎所有其他crate所依赖的。

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

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

  • swarm/:基于 libp2p-corelibp2p-swarm 实现,使用了核心接口 NetworkBehaviourConnectionHandler 来实现应用协议(见 protocols/)。

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

  • misc/:实用库。

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

社区指南

libp2p 项目遵循 IPFS 行为准则

tl;dr

  • 尊重他人。
  • 我们在这里提供帮助:[email protected]
  • 容忍任何形式的滥用行为。
  • 违反此准则可能导致迅速且永久地从 IPFS [和 libp2p] 社区中除名。
  • "Too long, didn't read" 不是不阅读本文件的合理借口。

维护者

(按字母顺序排列。)

知名用户

(如果您想将项目添加到此列表,请提交一个拉取请求)

  • COMIT - 比特币-门罗币跨链原子交换。
  • Forest - Filecoin 的 Rust 实现。
  • 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 的传输、升级、复用和节点处理。

libp2p-core 的主要概念包括:

  • Transport 特性定义了如何连接到远程节点或监听来自远程的连接。请参阅 transport 模块。
  • StreamMuxer 特性在持有远程连接的 struct 上实现,可以将此连接细分为多个子流。请参阅 muxing 模块。
  • UpgradeInfoInboundUpgradeOutboundUpgrade 特性定义了如何将每个子流升级为使用协议。请参阅 upgrade 模块。

依赖项

~6–13MB
~182K SLoC