libp2p/rust-libp2p

The Rust Implementation of the libp2p networking stack.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 37 minutes ago
Added to GitGenius on September 12th, 2026
Created on March 24th, 2017
Open Issues & Pull Requests: 283 (+0)
GitHub issues: Enabled
Number of forks: 1,254
Total Stargazers: 5,612 (+0)
Total Subscribers: 99 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 37.6 hours
Mean response time: 45.7 days
90th percentile: 147.8 days
Tracked items: 206

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 86% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 57% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 94
New in 7 days: 0
Closed in 7 days: 7
Avg open age: 668 days
Stale 30+ days: 89
Stale 90+ days: 83

Recent activity

Opened in 7 days: 0
Closed in 7 days: 7
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (33)
  • difficulty:easy (18)
  • getting-started (15)
  • difficulty:moderate (11)
  • tracking-issue (8)
  • priority:nicetohave (7)
  • bug (4)
  • decision-pending (4)

Detailed Description

rust-libp2p is a Rust implementation of the libp2p networking stack that enables peer-to-peer communication protocols.

The libp2p specification defines a modular set of protocols for building decentralized networks. rust-libp2p solves the problem of implementing these protocols in Rust by providing a layered architecture where core transport and multiplexing abstractions support higher-level application protocols. The project is organized into distinct components: libp2p-core defines the Transport and StreamMuxer APIs; transports implement protocols like TCP and protocol upgrades for encryption and compression; muxers handle stream multiplexing; libp2p-swarm provides NetworkBehaviour and ConnectionHandler interfaces for application logic; and protocols implement specific peer-to-peer behaviors on top of these foundations.

Developers building decentralized applications, peer-to-peer systems, or distributed networks should consider this implementation. The modular structure means you can compose only the transports, muxers, and protocols your application needs. The project provides worked examples demonstrating common transport configurations and application protocols, making it accessible for projects ranging from simple peer discovery to complex multi-protocol systems. The main documentation is available through standard Rust documentation channels, and an examples folder contains small binaries showcasing the available protocols.

Security issues are handled through a private vulnerability reporting process rather than public GitHub issues. The repository structure reflects a mature, well-organized codebase with clear separation between core abstractions, transport implementations, protocol definitions, and utilities, indicating sustained development focused on maintainability and extensibility.