# libp2p

A modular and extensible networking stack which solves many challenges of peer-to-peer applications.

Repository: https://github.com/libp2p/libp2p
Canonical: https://ross.abutalabs.com/products/libp2p
Homepage: https://libp2p.io
License: MIT
License Family: permissive
Last push: 2026-05-14T16:26:10+00:00
Link (homepage): https://libp2p.io
Link (site_page): https://libp2p.io/docs
Link (site_page): https://libp2p.io/releases

## Health v2 (maintenance only)
Score: 69/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 82, release rhythm 35, longevity 100
- inputs: {"age_days": 3728, "days_push": 111, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3116, forks 300 (observed 2026-08-28T04:07:44.139013+00:00)

## What it is
libp2p is a modular peer-to-peer networking stack and protocol suite, originally extracted from IPFS, with implementations in Go, Rust, JavaScript, and other languages. go-libp2p is the Go implementation, providing transports (TCP, QUIC, WebSocket, WebRTC), encrypted connections, stream multiplexing, peer discovery, and NAT traversal for building decentralized applications.

## Use cases
- build a peer-to-peer file sharing application
- connect nodes in a decentralized network without central servers
- implement NAT traversal and hole punching between peers
- create encrypted peer-to-peer messaging between browsers and servers
- build a blockchain or DHT network layer in Go
- multiplex multiple protocols over a single peer connection

## When to choose
- you are building decentralized or peer-to-peer applications in Go, Rust, or JavaScript
- you need cross-language interoperability via a shared protocol specification
- you need built-in NAT traversal, encrypted connections, and multiple transports
- you want a battle-tested stack used by IPFS, Ethereum, and Filecoin

## When to avoid
- you only need simple client-server HTTP communication
- you want a zero-configuration networking solution with minimal concepts to learn
- your project requires a small dependency footprint, as libp2p is a large modular stack
- you need a stable API with long-term guarantees, since libp2p's APIs evolve with the specs

## Facets
- artifact type: library
- maturity: stable
- function: networking, p2p, rpc, cryptography, middleware
- domain: networking, microservices, developer-tools, blockchain
- platform: go, rust, cross-platform, browser, windows
- tags: peer-to-peer, network-stack, modular-protocols, nat-traversal, quic, webrtc, ipfs, multi-language-implementations, javascript, nodejs, linux, macos

## Member repositories
- libp2p/libp2p (main) score 69
- libp2p/go-libp2p (sdk) score 96
- libp2p/rust-libp2p (sdk) score 70
- libp2p/js-libp2p (sdk) score 95
- libp2p/specs (docs) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:44.139013+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:41:41.339818+00:00, confidence not recorded.
  - readme: https://github.com/libp2p/libp2p (fetched 2026-08-28T04:07:44.139013+00:00, sha b803f3627c6b)
  - homepage: https://libp2p.io (fetched 2026-08-29T08:38:46.655809+00:00, sha 612cbcc32c52)
  - site_page: https://libp2p.io/docs (fetched 2026-08-29T08:38:46.664735+00:00, sha 896e8eec763a)
  - site_page: https://libp2p.io/releases (fetched 2026-08-29T08:38:46.668939+00:00, sha da0f0b6db2fa)
- Data as of 2026-08-30T08:39:29.467469+00:00.
