awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
libp2p avatar

libp2p/go-libp2p

0
View on GitHub↗
6,830 stars·1,270 forks·Go·MIT·19 views

Go Libp2p

go-libp2p is a Go implementation of the libp2p modular networking stack, providing a library for building peer-to-peer applications. It functions as a decentralized application framework that separates transport, security, and discovery layers into pluggable modules for cross-platform interoperability.

The library establishes peer-to-peer connections through a modular transport abstraction that supports multiple protocols, while using public key cryptography for peer identity and protocol-agnostic security transports for encrypting and authenticating all traffic. It enables distributed peer discovery via a distributed hash table, handles NAT traversal through AutoNAT and relay mechanisms, and supports multi-multiplexed stream muxers for sharing connections. A connection gater provides programmatic access control for accepting or rejecting incoming connections and streams.

For observability, go-libp2p includes an event bus that publishes structured events about connection lifecycle and protocol activity, and supports monitoring network performance with prebuilt dashboards for tracking real-time peer-to-peer traffic and system health.

Features

  • Peer-to-Peer Application Frameworks - Provides a framework for building peer-to-peer systems with NAT traversal, encrypted streams, and multi-transport support.
  • libp2p Implementations - Implements the libp2p modular networking stack for building peer-to-peer applications in Go.
  • Multi-Transport Connectivity - Establishes connections between peers across different network transports like TCP, QUIC, WebSockets, and WebRTC in a unified way.
  • NAT Traversal Mechanisms - Automatically detects NAT status and uses relay nodes to establish connections when direct dialing fails.
  • Modular - Provides an extensible networking framework that separates transport, security, and discovery layers for interoperability.
  • Multi-Protocol Transport Abstraction - Separates transport protocols into pluggable modules that can be swapped without changing application code.
  • Connectivity Establishment - Connects nodes over a modular network stack that separates transport, security, and discovery for interoperability.
  • Peer-to-Peer Networking Extensions - Builds modular peer-to-peer applications with pluggable transport, security, and discovery layers for cross-platform interoperability.
  • Peer-to-Peer Networking Libraries - Provides transport, security, peer discovery, and protocol multiplexing for decentralized applications.
  • Peer Discovery - Uses a distributed hash table to find peers without centralised registries or hardcoded addresses.
  • Stream Multiplexing - Allows multiple logical streams to share a single network connection using pluggable stream multiplexers.
  • Peer Connection Gaters - Provides a callback-based interface to programmatically accept or reject incoming connections and streams.
  • Peer Communication Security - Encrypts and authenticates messages between peers in a distributed network to ensure privacy and integrity.
  • Public Key Authentication - Each peer is identified by its public key, enabling secure handshakes and authenticated communication.
  • Negotiable Security Transports - Encrypts and authenticates all traffic through negotiable security transports like TLS or Noise.
  • Peer-to-Peer Traffic Dashboards - Observing real-time network performance and health metrics in a peer-to-peer system using prebuilt monitoring dashboards.
  • Internal Observability Event Buses - Publishes structured events about connection lifecycle and protocol activity for monitoring and debugging.

Star history

Star history chart for libp2p/go-libp2pStar history chart for libp2p/go-libp2p

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does libp2p/go-libp2p do?

go-libp2p is a Go implementation of the libp2p modular networking stack, providing a library for building peer-to-peer applications. It functions as a decentralized application framework that separates transport, security, and discovery layers into pluggable modules for cross-platform interoperability.

What are the main features of libp2p/go-libp2p?

The main features of libp2p/go-libp2p are: Peer-to-Peer Application Frameworks, libp2p Implementations, Multi-Transport Connectivity, NAT Traversal Mechanisms, Modular, Multi-Protocol Transport Abstraction, Connectivity Establishment, Peer-to-Peer Networking Extensions.

Which projects share features with libp2p/go-libp2p?

Projects with overlapping indexed features include: libp2p/rust-libp2p — rust-libp2p is a modular peer-to-peer networking library written in Rust, implementing the libp2p specification. It… libp2p/libp2p — libp2p is a modular peer-to-peer networking stack designed for building decentralized applications. It provides the… perlin-network/noise — Noise is a peer-to-peer networking stack written in Go designed for building decentralized systems. It provides a… easytier/easytier — EasyTier is a decentralized peer-to-peer virtual private network and mesh networking tool. It functions as a layer 3… anacrolix/torrent — This project is a full-featured BitTorrent client library and protocol implementation. It provides the core components… webtorrent/webtorrent — WebTorrent is a JavaScript client library and peer-to-peer file sharing tool that implements the BitTorrent protocol.…

Projects sharing features with Go Libp2p

These projects share indexed features with Go Libp2p. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • libp2p/rust-libp2plibp2p avatar

    libp2p/rust-libp2p

    5,556View on GitHub↗

    rust-libp2p is a modular peer-to-peer networking library written in Rust, implementing the libp2p specification. It provides a composable stack of transport, security, and discovery protocols that can be mixed and matched to build decentralized applications, with a central swarm manager coordinating all active connections, protocol negotiation, and peer lifecycle. The library distinguishes itself through a pluggable transport abstraction that supports TCP, QUIC, WebSocket, WebRTC, and WebTransport, enabling cross-platform operation across browsers, mobile devices, and servers. It secures ever

    Rustdecentralizationlibp2pnetworking
    View on GitHub↗5,556
  • libp2p/libp2plibp2p avatar

    libp2p/libp2p

    2,940View on GitHub↗

    libp2p is a modular peer-to-peer networking stack designed for building decentralized applications. It provides the core infrastructure necessary for nodes to discover and connect with other participants across a network without relying on central servers. The project distinguishes itself through a flexible transport layer that abstracts multiple protocols, including TCP, QUIC, WebSockets, and WebTransport, into a single interface. It features specialized tools for NAT and firewall traversal, such as hole punching and relay nodes, to establish direct connections between peers and web browsers

    View on GitHub↗2,940
  • perlin-network/noiseperlin-network avatar

    perlin-network/noise

    1,826View on GitHub↗

    Noise is a peer-to-peer networking stack written in Go designed for building decentralized systems. It provides a framework for managing node lifecycles, establishing encrypted communication channels, and facilitating direct data exchange between distributed nodes without reliance on central authorities. The library distinguishes itself through a modular architecture that allows developers to stack custom communication layers, enabling the creation of specialized network protocols. It incorporates a decentralized key-value lookup system for peer discovery and routing, alongside cryptographic

    Gocryptographygolangnetwork
    View on GitHub↗1,826
  • easytier/easytierEasyTier avatar

    EasyTier/EasyTier

    12,012View on GitHub↗

    EasyTier is a decentralized peer-to-peer virtual private network and mesh networking tool. It functions as a layer 3 network overlay that establishes secure tunnels between devices without requiring a centralized server or coordinator. It also serves as a WireGuard-compatible VPN, capable of acting as a server for standard WireGuard clients. The project distinguishes itself through multipath latency-based routing and the use of KCP or QUIC proxies to mitigate packet loss and stabilize connections in high-loss environments. It provides a virtual networking manager featuring a web management co

    Rustnat-traversalp2prust
    View on GitHub↗12,012
  • Compare all 30 related projects→