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·13 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 were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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.

What are some open-source alternatives to libp2p/go-libp2p?

Open-source alternatives to libp2p/go-libp2p 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.…

Open-source alternatives to Go Libp2p

Similar open-source projects, ranked by how many features they share with Go Libp2p.
  • 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
  • See all 30 alternatives to Go Libp2p→