@ -120,13 +120,11 @@ List of packages currently in existence for libp2p:
| ---------|---------|---------|--------- |
| ---------|---------|---------|--------- |
| **Libp2p** |
| **Libp2p** |
| [`go-libp2p` ](//github.com/libp2p/go-libp2p ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p) | go-libp2p entry point |
| [`go-libp2p` ](//github.com/libp2p/go-libp2p ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p) | go-libp2p entry point |
| [`go-libp2p-host` ](//github.com/libp2p/go-libp2p-host ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-host.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-host) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-host/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-host) | libp2p "host" interface |
| [`go-libp2p-core` ](//github.com/libp2p/go-libp2p-core ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-core.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-core) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-core/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-core) | core interfaces, types, and abstractions |
| [`go-libp2p-blankhost` ](//github.com/libp2p/go-libp2p-blankhost ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-blankhost.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-blankhost) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-blankhost/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-blankhost) | minimal implementation of the "host" interface |
| [`go-libp2p-blankhost` ](//github.com/libp2p/go-libp2p-blankhost ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-blankhost.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-blankhost) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-blankhost/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-blankhost) | minimal implementation of the "host" interface |
| **Network** |
| **Network** |
| [`go-libp2p-net` ](//github.com/libp2p/go-libp2p-net ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-net.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-net) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-net/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-net) | libp2p connection and "network" interfaces |
| [`go-libp2p-swarm` ](//github.com/libp2p/go-libp2p-swarm ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-swarm.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-swarm) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-swarm/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-swarm) | reference implementation of network state machine |
| [`go-libp2p-swarm` ](//github.com/libp2p/go-libp2p-swarm ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-swarm.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-swarm) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-swarm/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-swarm) | reference implementation |
| **Transport** |
| **Transport** |
| [`go-libp2p-transport` ](//github.com/libp2p/go-libp2p-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-transport) | interfaces |
| [`go-ws-transport` ](//github.com/libp2p/go-ws-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-ws-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-ws-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-ws-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-ws-transport) | WebSocket transport |
| [`go-ws-transport` ](//github.com/libp2p/go-ws-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-ws-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-ws-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-ws-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-ws-transport) | WebSocket transport |
| [`go-tcp-transport` ](//github.com/libp2p/go-tcp-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-tcp-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-tcp-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-tcp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-tcp-transport) | TCP transport |
| [`go-tcp-transport` ](//github.com/libp2p/go-tcp-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-tcp-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-tcp-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-tcp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-tcp-transport) | TCP transport |
| [`go-libp2p-quic-transport` ](//github.com/libp2p/go-libp2p-quic-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-quic-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-quic-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-quic-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-quic-transport) | QUIC transport |
| [`go-libp2p-quic-transport` ](//github.com/libp2p/go-libp2p-quic-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-quic-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-quic-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-quic-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-quic-transport) | QUIC transport |
@ -136,28 +134,25 @@ List of packages currently in existence for libp2p:
| [`go-libp2p-transport-upgrader` ](//github.com/libp2p/go-libp2p-transport-upgrader ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader) | upgrades multiaddr-net connections into full libp2p transports |
| [`go-libp2p-transport-upgrader` ](//github.com/libp2p/go-libp2p-transport-upgrader ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-transport-upgrader) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-transport-upgrader) | upgrades multiaddr-net connections into full libp2p transports |
| [`go-libp2p-reuseport-transport` ](//github.com/libp2p/go-libp2p-reuseport-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport) | partial transport for building transports that reuse ports |
| [`go-libp2p-reuseport-transport` ](//github.com/libp2p/go-libp2p-reuseport-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-reuseport-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-reuseport-transport) | partial transport for building transports that reuse ports |
| **Encrypted Channels** |
| **Encrypted Channels** |
| [`go-conn-security` ](//github.com/libp2p/go-conn-security ) | [![Travis CI ](https://travis-ci.com/libp2p/go-conn-security.svg?branch=master )](https://travis-ci.com/libp2p/go-conn-security) | [![codecov ](https://codecov.io/gh/libp2p/go-conn-security/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-conn-security) | interfaces |
| [`go-libp2p-secio` ](//github.com/libp2p/go-libp2p-secio ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-secio.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-secio) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-secio/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-secio) | SecIO crypto channel |
| [`go-libp2p-secio` ](//github.com/libp2p/go-libp2p-secio ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-secio.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-secio) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-secio/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-secio) | SecIO crypto channel |
| [`go-libp2p-tls-transport` ](//github.com/libp2p/go-libp2p-tls-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-tls-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-tls-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-tls-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-tls-transport) | TLS 1.3+ crypto channel |
| [`go-conn-security-multistream` ](//github.com/libp2p/go-conn-security-multistream ) | [![Travis CI ](https://travis-ci.com/libp2p/go-conn-security-multistream.svg?branch=master )](https://travis-ci.com/libp2p/go-conn-security-multistream) | [![codecov ](https://codecov.io/gh/libp2p/go-conn-security-multistream/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-conn-security-multistream) | multistream multiplexed meta crypto channel |
| [`go-conn-security-multistream` ](//github.com/libp2p/go-conn-security-multistream ) | [![Travis CI ](https://travis-ci.com/libp2p/go-conn-security-multistream.svg?branch=master )](https://travis-ci.com/libp2p/go-conn-security-multistream) | [![codecov ](https://codecov.io/gh/libp2p/go-conn-security-multistream/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-conn-security-multistream) | multistream multiplexed meta crypto channel |
| **Private Network** |
| **Private Network** |
| [`go-libp2p-interface-pnet` ](//github.com/libp2p/go-libp2p-interface-pnet ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-interface-pnet.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-interface-pnet) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet) | interfaces |
| [`go-libp2p-pnet` ](//github.com/libp2p/go-libp2p-pnet ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pnet.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pnet) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pnet/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pnet) | reference private networking implementation |
| [`go-libp2p-pnet` ](//github.com/libp2p/go-libp2p-pnet ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pnet.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pnet) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pnet/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pnet) | reference implementation |
| **Stream Muxers** |
| **Stream Muxers** |
| [`go-stream-muxer` ](//github.com/libp2p/go-stream-muxer ) | [![Travis CI ](https://travis-ci.com/libp2p/go-stream-muxer.svg?branch=master )](https://travis-ci.com/libp2p/go-stream-muxer) | [![codecov ](https://codecov.io/gh/libp2p/go-stream-muxer/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-stream-muxer) | interfaces |
| [`go-libp2p-yamux` ](//github.com/libp2p/go-libp2p-yamux ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-yamux.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-yamux) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-yamux/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-yamux) | YAMUX stream multiplexer |
| [`go-smux-yamux` ](//github.com/whyrusleeping/go-smux-yamux ) | [![Travis CI ](https://travis-ci.com/whyrusleeping/go-smux-yamux.svg?branch=master )](https://travis-ci.com/whyrusleeping/go-smux-yamux) | [![codecov ](https://codecov.io/gh/whyrusleeping/go-smux-yamux/branch/master/graph/badge.svg )](https://codecov.io/gh/whyrusleeping/go-smux-yamux) | YAMUX stream multiplexer |
| [`go-libp2p-mplex` ](//github.com/libp2p/go-libp2p-mplex ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-mplex.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-mplex) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-mplex/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-mplex) | MPLEX stream multiplexer |
| [`go-smux-multiplex` ](//github.com/whyrusleeping/go-smux-multiplex ) | [![Travis CI ](https://travis-ci.com/whyrusleeping/go-smux-multiplex.svg?branch=master )](https://travis-ci.com/whyrusleeping/go-smux-multiplex) | [![codecov ](https://codecov.io/gh/whyrusleeping/go-smux-multiplex/branch/master/graph/badge.svg )](https://codecov.io/gh/whyrusleeping/go-smux-multiplex) | MPLEX stream multiplexer |
| **NAT Traversal** |
| **NAT Traversal** |
| [`go-libp2p-nat` ](//github.com/libp2p/go-libp2p-nat ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-nat.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-nat) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-nat/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-nat) | |
| [`go-libp2p-nat` ](//github.com/libp2p/go-libp2p-nat ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-nat.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-nat) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-nat/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-nat) | |
| **Peerstore** |
| **Peerstore** |
| [`go-libp2p-peerstore` ](//github.com/libp2p/go-libp2p-peerstore ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-peerstore.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-peerstore) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-peerstore/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-peerstore) | interfaces and reference implementation |
| [`go-libp2p-peerstore` ](//github.com/libp2p/go-libp2p-peerstore ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-peerstore.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-peerstore) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-peerstore/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-peerstore) | reference implementation of peer metadata storage component |
| **Connection Manager** |
| **Connection Manager** |
| [`go-libp2p-interface-connmgr` ](//github.com/libp2p/go-libp2p-interface-connmgr ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr) | interface |
| [`go-libp2p-connmgr` ](//github.com/libp2p/go-libp2p-connmgr ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-connmgr.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-connmgr) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-connmgr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-connmgr) | reference implementation of connection manager |
| [`go-libp2p-connmgr` ](//github.com/libp2p/go-libp2p-connmgr ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-connmgr.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-connmgr) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-connmgr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-connmgr) | reference implementation |
| **Routing** |
| **Routing** |
| [`go-libp2p-routing` ](//github.com/libp2p/go-libp2p-routing ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-routing.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-routing) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-routing/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-routing) | routing interfaces |
| [`go-libp2p-record` ](//github.com/libp2p/go-libp2p-record ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-record.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-record) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-record/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-record) | record type and validator logic |
| [`go-libp2p-record` ](//github.com/libp2p/go-libp2p-record ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-record.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-record) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-record/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-record) | record type and validator logic |
| [`go-libp2p-routing-helpers` ](//github.com/libp2p/go-libp2p-routing-helpers ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-routing-helpers.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-routing-helpers) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers) | helpers for composing routers |
| [`go-libp2p-kad-dht` ](//github.com/libp2p/go-libp2p-kad-dht ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-kad-dht.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-kad-dht) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-kad-dht/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-kad-dht) | Kademlia-like router |
| [`go-libp2p-kad-dht` ](//github.com/libp2p/go-libp2p-kad-dht ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-kad-dht.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-kad-dht) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-kad-dht/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-kad-dht) | Kademlia-like router |
| [`go-libp2p-kbucket` ](//github.com/libp2p/go-libp2p-kbucket ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-kbucket.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-kbucket) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-kbucket/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-kbucket) | Kademlia routing table helper types |
| [`go-libp2p-coral-dht` ](//github.com/libp2p/go-libp2p-coral-dht ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-coral-dht.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-coral-dht) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-coral-dht/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-coral-dht) | Router based on Coral DHT |
| [`go-libp2p-pubsub-router` ](//github.com/libp2p/go-libp2p-pubsub-router ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pubsub-router.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pubsub-router) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router) | record-store over pubsub adapter |
| [`go-libp2p-pubsub-router` ](//github.com/libp2p/go-libp2p-pubsub-router ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pubsub-router.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pubsub-router) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router) | record-store over pubsub adapter |
| **Consensus** |
| **Consensus** |
| [`go-libp2p-consensus` ](//github.com/libp2p/go-libp2p-consensus ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-consensus.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-consensus) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-consensus/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-consensus) | consensus protocols interfaces |
| [`go-libp2p-consensus` ](//github.com/libp2p/go-libp2p-consensus ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-consensus.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-consensus) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-consensus/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-consensus) | consensus protocols interfaces |
@ -166,13 +161,6 @@ List of packages currently in existence for libp2p:
| [`go-libp2p-pubsub` ](//github.com/libp2p/go-libp2p-pubsub ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pubsub.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pubsub) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pubsub/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pubsub) | multiple pubsub over libp2p implementations |
| [`go-libp2p-pubsub` ](//github.com/libp2p/go-libp2p-pubsub ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-pubsub.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-pubsub) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pubsub/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pubsub) | multiple pubsub over libp2p implementations |
| **RPC** |
| **RPC** |
| [`go-libp2p-gorpc` ](//github.com/libp2p/go-libp2p-gorpc ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-gorpc.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-gorpc) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-gorpc/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-gorpc) | a simple RPC library for libp2p |
| [`go-libp2p-gorpc` ](//github.com/libp2p/go-libp2p-gorpc ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-gorpc.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-gorpc) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-gorpc/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-gorpc) | a simple RPC library for libp2p |
| **Metrics** |
| [`go-libp2p-metrics` ](//github.com/libp2p/go-libp2p-metrics ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-metrics.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-metrics) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-metrics/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-metrics) | libp2p metrics interfaces/collectors |
| **Data Types** |
| [`go-libp2p-peer` ](//github.com/libp2p/go-libp2p-peer ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-peer.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-peer) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-peer/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-peer) | libp2p peer-ID datatype |
| [`go-libp2p-crypto` ](//github.com/libp2p/go-libp2p-crypto ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-crypto.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-crypto) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-crypto/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-crypto) | libp2p key types |
| [`go-libp2p-protocol` ](//github.com/libp2p/go-libp2p-protocol ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-protocol.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-protocol) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-protocol/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-protocol) | libp2p protocol datatype |
| [`go-libp2p-kbucket` ](//github.com/libp2p/go-libp2p-kbucket ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-kbucket.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-kbucket) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-kbucket/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-kbucket) | Kademlia routing table helper types |
| **Utilities/miscellaneous** |
| **Utilities/miscellaneous** |
| [`go-libp2p-loggables` ](//github.com/libp2p/go-libp2p-loggables ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-loggables.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-loggables) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-loggables/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-loggables) | logging helpers |
| [`go-libp2p-loggables` ](//github.com/libp2p/go-libp2p-loggables ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-loggables.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-loggables) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-loggables/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-loggables) | logging helpers |
| [`go-maddr-filter` ](//github.com/libp2p/go-maddr-filter ) | [![Travis CI ](https://travis-ci.com/libp2p/go-maddr-filter.svg?branch=master )](https://travis-ci.com/libp2p/go-maddr-filter) | [![codecov ](https://codecov.io/gh/libp2p/go-maddr-filter/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-maddr-filter) | multiaddr filtering helpers |
| [`go-maddr-filter` ](//github.com/libp2p/go-maddr-filter ) | [![Travis CI ](https://travis-ci.com/libp2p/go-maddr-filter.svg?branch=master )](https://travis-ci.com/libp2p/go-maddr-filter) | [![codecov ](https://codecov.io/gh/libp2p/go-maddr-filter/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-maddr-filter) | multiaddr filtering helpers |
@ -187,9 +175,29 @@ List of packages currently in existence for libp2p:
| [`go-libp2p-gostream` ](//github.com/libp2p/go-libp2p-gostream ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-gostream.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-gostream) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-gostream/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-gostream) | Go 'net' wrappers for libp2p |
| [`go-libp2p-gostream` ](//github.com/libp2p/go-libp2p-gostream ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-gostream.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-gostream) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-gostream/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-gostream) | Go 'net' wrappers for libp2p |
| [`go-libp2p-http` ](//github.com/libp2p/go-libp2p-http ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-http.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-http) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-http/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-http) | HTTP on top of libp2p streams |
| [`go-libp2p-http` ](//github.com/libp2p/go-libp2p-http ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-http.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-http) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-http/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-http) | HTTP on top of libp2p streams |
| **Testing and examples** |
| **Testing and examples** |
| [`go-testutil` ](//github.com/libp2p/go-testutil ) | [![Travis CI ](https://travis-ci.com/libp2p/go-testutil.svg?branch=master )](https://travis-ci.com/libp2p/go-testutil) | [![codecov ](https://codecov.io/gh/libp2p/go-testutil/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-testutil) | a collection of testing utilities for ipfs and libp2p |
| [`go-libp2p-testing` ](//github.com/libp2p/go-libp2p-testing ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-testing.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-testing) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-testing/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-testing) | a collection of testing utilities for libp2p |
| [`go-libp2p-examples` ](//github.com/libp2p/go-libp2p-examples ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-examples.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-examples) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-examples/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-examples) | go-libp2p examples and tutorials |
| [`go-libp2p-examples` ](//github.com/libp2p/go-libp2p-examples ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-examples.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-examples) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-examples/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-examples) | go-libp2p examples and tutorials |
| **Deprecated** |
| [`go-conn-security` ](//github.com/libp2p/go-conn-security ) | [![Travis CI ](https://travis-ci.com/libp2p/go-conn-security.svg?branch=master )](https://travis-ci.com/libp2p/go-conn-security) | [![codecov ](https://codecov.io/gh/libp2p/go-conn-security/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-conn-security) | absorbed into go-libp2p-core |
| [`go-peerstream` ](//github.com/libp2p/go-peerstream ) | [![Travis CI ](https://travis-ci.com/libp2p/go-peerstream.svg?branch=master )](https://travis-ci.com/libp2p/go-peerstream) | [![codecov ](https://codecov.io/gh/libp2p/go-peerstream/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-peerstream) | early work that informed libp2p design |
| [`go-stream-muxer` ](//github.com/libp2p/go-stream-muxer ) | [![Travis CI ](https://travis-ci.com/libp2p/go-stream-muxer.svg?branch=master )](https://travis-ci.com/libp2p/go-stream-muxer) | [![codecov ](https://codecov.io/gh/libp2p/go-stream-muxer/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-stream-muxer) | absorbed into go-libp2p-core |
| [`go-testutil` ](//github.com/libp2p/go-testutil ) | [![Travis CI ](https://travis-ci.com/libp2p/go-testutil.svg?branch=master )](https://travis-ci.com/libp2p/go-testutil) | [![codecov ](https://codecov.io/gh/libp2p/go-testutil/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-testutil) | replaced by go-libp2p-testing |
| [`go-libp2p-circuit-progs` ](//github.com/libp2p/go-libp2p-circuit-progs ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-circuit-progs.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-circuit-progs) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs) | testing programs for go-libp2p-circuit |
| [`go-libp2p-circuit-progs` ](//github.com/libp2p/go-libp2p-circuit-progs ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-circuit-progs.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-circuit-progs) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-circuit-progs) | testing programs for go-libp2p-circuit |
| [`go-libp2p-crypto` ](//github.com/libp2p/go-libp2p-crypto ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-crypto.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-crypto) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-crypto/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-crypto) | absorbed into go-libp2p-core |
| [`go-libp2p-conn` ](//github.com/libp2p/go-libp2p-conn ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-conn.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-conn) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-conn/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-conn) | replaced by go-libp2p-swarm and go-libp2p-transport-upgrader |
| [`go-libp2p-discovery` ](//github.com/libp2p/go-libp2p-discovery ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-discovery.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-discovery) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-discovery/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-discovery) | absorbed into go-libp2p-core |
| [`go-libp2p-dummy-conn` ](//github.com/libp2p/go-libp2p-dummy-conn ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-dummy-conn.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-dummy-conn) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-dummy-conn/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-dummy-conn) | implempentation of deprecated interface |
| [`go-libp2p-host` ](//github.com/libp2p/go-libp2p-host ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-host.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-host) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-host/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-host) | absorbed into go-libp2p-core |
| [`go-libp2p-identify` ](//github.com/libp2p/go-libp2p-identify ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-identify.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-identify) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-identify/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-identify) | moved to go-libp2p |
| [`go-libp2p-interface-conn` ](//github.com/libp2p/go-libp2p-interface-conn ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-interface-conn.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-interface-conn) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-interface-conn/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-interface-conn) | absorbed into go-libp2p-core |
| [`go-libp2p-interface-connmgr` ](//github.com/libp2p/go-libp2p-interface-connmgr ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-interface-connmgr) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-interface-connmgr) | absorbed into go-libp2p-core |
| [`go-libp2p-interface-pnet` ](//github.com/libp2p/go-libp2p-interface-pnet ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-interface-pnet.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-interface-pnet) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-interface-pnet) | absorbed into go-libp2p-core |
| [`go-libp2p-metrics` ](//github.com/libp2p/go-libp2p-metrics ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-metrics.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-metrics) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-metrics/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-metrics) | absorbed into go-libp2p-core |
| [`go-libp2p-net` ](//github.com/libp2p/go-libp2p-net ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-net.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-net) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-net/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-net) | absorbed into go-libp2p-core |
| [`go-libp2p-peer` ](//github.com/libp2p/go-libp2p-peer ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-peer.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-peer) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-peer/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-peer) | absorbed into go-libp2p-core |
| [`go-libp2p-ping` ](//github.com/libp2p/go-libp2p-ping ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-ping.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-ping) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-ping/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-ping) | moved to go-libp2p |
| [`go-libp2p-protocol` ](//github.com/libp2p/go-libp2p-protocol ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-protocol.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-protocol) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-protocol/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-protocol) | absorbed into go-libp2p-core |
| [`go-libp2p-transport` ](//github.com/libp2p/go-libp2p-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-transport) | absorbed into go-libp2p-core |
# Contribute
# Contribute