The abstractions that make up go-libp2p (interfaces for transports, muxing, security, discovery, etc.) were split across ~15 repos, which made it hard to reason about the system, and had other detrimental effects across a number of axes.
There’s an effort underway to consolidate all core abstractions and types under go-libp2p-core. Check out the branch here:
Discussion is happening in:
Come by and let us know what you think!