Libp2p is a network stack of protocols, libraries, and specifications designed for peer-to-peer (P2P) applications and systems, allowing developers to use plug-and-play networking in their distributed applications. The system started out as the networking layer for the InterPlanetary File System (IPFS), but it eventually evolved into its own project. It is designed to solve problems in data transport, digital identity, security, routing, content discovery, and other applications. Libp2p has JavaScript, Go, Rust, Python, and C++ implementations.