@ -13,7 +13,7 @@
< / p >
< p align = "center" >
< a href = "https://travis-ci.org /libp2p/go-libp2p" > < img src = "https://travis-ci.org /libp2p/go-libp2p.svg?branch=master" / > < / a >
< a href = "https://travis-ci.com /libp2p/go-libp2p" > < img src = "https://travis-ci.com /libp2p/go-libp2p.svg?branch=master" / > < / a >
< br >
< a href = "https://github.com/RichardLitt/standard-readme" > < img src = "https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square" / > < / a >
< a href = "https://godoc.org/github.com/libp2p/go-libp2p" > < img src = "https://godoc.org/github.com/libp2p/go-libp2p?status.svg" / > < / a >
@ -110,82 +110,78 @@ $ gx test ./p2p/<path of module you want to run tests for>
List of packages currently in existence for libp2p:
| Name | CI/Travis | CI/Jenkins | Coverage | Description |
| ---------|---------|---------|---------|--------- |
| Name | CI | Coverage | Description |
| ---------|---------|---------|--------- |
| **Libp2p** |
| [`go-libp2p` ](//github.com/libp2p/go-libp2p ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p/ master )](https://ci.ipfs.team/job /libp2p/job /go-libp2p/job/master/ ) | [![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.org/libp2p/go-libp2p-host.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-host) | N/A | [![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-blankhost` ](//github.com/libp2p/go-libp2p-blankhost ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-blankhost.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-blankhost) | N/A | [![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` ](//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-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** |
| [`go-libp2p-net` ](//github.com/libp2p/go-libp2p-net ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-net.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-net) | N/A | [![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.org /libp2p/go-libp2p-swarm.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-swarm) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-swar m/master )](https://ci.ipfs.team/job/ libp2p/job /go-libp2p-swarm/job/master/ ) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-swarm/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-swarm) | reference implementation |
| [`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 |
| **Transport** |
| [`go-libp2p-transport` ](//github.com/libp2p/go-libp2p-transport ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-transport) | N/A | [![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.org/libp2p/go-ws-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-ws-transport) | N/A | [![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.org/libp2p/go-tcp-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-tcp-transport) | N/A | [![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.org/libp2p/go-libp2p-quic-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-quic-transport) | N/A | [![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-udp-transport` ](//github.com/libp2p/go-udp-transport ) | [![Travis CI ](https://travis-ci.org/libp2p/go-udp-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-udp-transport) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-udp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-udp-transport) | UDP transport |
| [`go-utp-transport` ](//github.com/libp2p/go-utp-transport ) | [![Travis CI ](https://travis-ci.org/libp2p/go-utp-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-utp-transport) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-utp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-utp-transport) | uTorrent transport (UTP) |
| [`go-libp2p-circuit` ](//github.com/libp2p/go-libp2p-circuit ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p-circuit.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-circuit) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-circuit/ master )](https://ci.ipfs.team/job /libp2p/job/ go-libp2p-circuit/job/master/ ) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-circuit/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-circuit) | relay transport |
| [`go-libp2p-transport-upgrader` ](//github.com/libp2p/go-libp2p-transport-upgrader ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-transport-upgrader.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-transport-upgrader) | N/A | [![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.org/libp2p/go-libp2p-reuseport-transport.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-reuseport-transport) | N/A | [![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-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-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-udp-transport` ](//github.com/libp2p/go-udp-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-udp-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-udp-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-udp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-udp-transport) | UDP transport |
| [`go-utp-transport` ](//github.com/libp2p/go-utp-transport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-utp-transport.svg?branch=master )](https://travis-ci.com/libp2p/go-utp-transport) | [![codecov ](https://codecov.io/gh/libp2p/go-utp-transport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-utp-transport) | uTorrent transport (UTP) |
| [`go-libp2p-circuit` ](//github.com/libp2p/go-libp2p-circuit ) | [![Travis CI ](https://travis-ci.com /libp2p/go-libp2p-circuit.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-circuit) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-circuit/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-circuit) | relay transport |
| [`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 |
| **Encrypted Channels** |
| [`go-conn-security` ](//github.com/libp2p/go-conn-security ) | [![Travis CI ](https://travis-ci.org/libp2p/go-conn-security.svg?branch=master )](https://travis-ci.org/libp2p/go-conn-security) | N/A | [![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.org/libp2p/go-libp2p-secio.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-secio) | N/A | [![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-conn-security-multistream` ](//github.com/libp2p/go-conn-security-multistream ) | [![Travis CI ](https://travis-ci.org/libp2p/go-conn-security-multistream.svg?branch=master )](https://travis-ci.org/libp2p/go-conn-security-multistream) | N/A | [![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` ](//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-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** |
| [`go-libp2p-interface-pnet` ](//github.com/libp2p/go-libp2p-interface-pnet ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-interface-pnet.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-interface-pnet) | N/A | [![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.org/libp2p/go-libp2p-pnet.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-pnet) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-pnet/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-pnet) | reference implementation |
| [`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 implementation |
| **Stream Muxers** |
| [`go-stream-muxer` ](//github.com/libp2p/go-stream-muxer ) | [![Travis CI ](https://travis-ci.org/libp2p/go-stream-muxer.svg?branch=master )](https://travis-ci.org/libp2p/go-stream-muxer) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-stream-muxer/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-stream-muxer) | interfaces |
| [`go-smux-yamux` ](//github.com/whyrusleeping/go-smux-yamux ) | [![Travis CI ](https://travis-ci.org/whyrusleeping/go-smux-yamux.svg?branch=master )](https://travis-ci.org/whyrusleeping/go-smux-yamux) | N/A | [![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-smux-mplex` ](//github.com/whyrusleeping/go-smux-mplex ) | [![Travis CI ](https://travis-ci.org/whyrusleeping/go-smux-mplex.svg?branch=master )](https://travis-ci.org/whyrusleeping/go-smux-mplex) | N/A | [![codecov ](https://codecov.io/gh/whyrusleeping/go-smux-mplex/branch/master/graph/badge.svg )](https://codecov.io/gh/whyrusleeping/go-smux-mplex) | MPLEX stream multiplexer |
| [`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-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-smux-mplex` ](//github.com/whyrusleeping/go-smux-mplex ) | [![Travis CI ](https://travis-ci.com/whyrusleeping/go-smux-mplex.svg?branch=master )](https://travis-ci.com/whyrusleeping/go-smux-mplex) | [![codecov ](https://codecov.io/gh/whyrusleeping/go-smux-mplex/branch/master/graph/badge.svg )](https://codecov.io/gh/whyrusleeping/go-smux-mplex) | MPLEX stream multiplexer |
| **NAT Traversal** |
| [`go-libp2p-nat` ](//github.com/libp2p/go-libp2p-nat ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-nat.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-nat) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-nat/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-nat) | |
| [`go-libp2p-autonat` ](//github.com/libp2p/go-libp2p-autonat ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-autonat.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-autonat) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-autonat/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-autonat) | NAT autodetection (client) |
| [`go-libp2p-autonat-svc` ](//github.com/libp2p/go-libp2p-autonat-svc ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-autonat-svc.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-autonat-svc) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-autonat-svc/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-autonat-svc) | NAT autodetection (service) |
| [`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** |
| [`go-libp2p-peerstore` ](//github.com/libp2p/go-libp2p-peerstore ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-peerstore.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-peerstore) | N/A | [![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) | interfaces and reference implementation |
| **Connection Manager** |
| [`go-libp2p-interface-connmgr` ](//github.com/libp2p/go-libp2p-interface-connmgr ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-interface-connmgr.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-interface-connmgr) | N/A | [![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.org/libp2p/go-libp2p-connmgr.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-connmgr) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-connmgr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-connmgr) | reference implementation |
| [`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 |
| **Routing** |
| [`go-libp2p-routing` ](//github.com/libp2p/go-libp2p-routing ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-routing.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-routing) | N/A | [![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.org/libp2p/go-libp2p-record.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-record) | N/A | [![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.org/libp2p/go-libp2p-routing-helpers.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-routing-helpers) | [![jenkins ](https://ci.ipfs.team/buildStatus/icon?job=libp2p/go-libp2p-routing-helpers/master )](https://ci.ipfs.team/job/libp2p/job/go-libp2p-routing-helpers/job/master/) | [![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.org/libp2p/go-libp2p-kad-dht.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-kad-dht) | [![jenkins ](https://ci.ipfs.team/buildStatus/icon?job=libp2p/go-libp2p-kad-dht/master )](https://ci.ipfs.team/job/libp2p/job/go-libp2p-kad-dht/job/master/) | [![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-pubsub-router` ](//github.com/libp2p/go-libp2p-pubsub-router ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-pubsub-router.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-pubsub-router) | [![jenkins ](https://ci.ipfs.team/buildStatus/icon?job=libp2p/go-libp2p-pubsub-router/master )](https://ci.ipfs.team/job/libp2p/job/go-libp2p-pubsub-router/job/master/) | [![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 |
| **Discovery** |
| [`go-libp2p-discovery` ](//github.com/libp2p/go-libp2p-discovery ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-discovery.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-discovery) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-discovery/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-discovery) | active peer disovery interface |
| [`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-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-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** |
| [`go-libp2p-consensus` ](//github.com/libp2p/go-libp2p-consensus ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-consensus.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-consensus) | N/A | [![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-raft` ](//github.com/libp2p/go-libp2p-raft ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p-raft.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-raft) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-raft/ master )](https://ci.ipfs.team/job /libp2p/job /go-libp2p-raft/job/master/ ) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-raft/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-raft) | consensus implementation over raft |
| [`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-raft` ](//github.com/libp2p/go-libp2p-raft ) | [![Travis CI ](https://travis-ci.com /libp2p/go-libp2p-raft.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-raft) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-raft/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-raft) | consensus implementation over raft |
| **Pubsub** |
| [`go-libp2p-pubsub` ](//github.com/libp2p/go-libp2p-pubsub ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p-pubsub.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-pubsub) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-pubsub/ master )](https://ci.ipfs.team/job /libp2p/job /go-libp2p-pubsub/job/master/ ) | [![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** |
| [`go-libp2p-gorpc` ](//github.com/libp2p/go-libp2p-gorpc ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-gorpc.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-gorpc) | N/A | [![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.org/libp2p/go-libp2p-metrics.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-metrics) | N/A | [![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 |
| [`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.org/libp2p/go-libp2p-peer.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-peer) | N/A | [![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.org/libp2p/go-libp2p-crypto.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-crypto) | N/A | [![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.org/libp2p/go-libp2p-protocol.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-protocol) | N/A | [![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.org/libp2p/go-libp2p-kbucket.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-kbucket) | N/A | [![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-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** |
| [`go-libp2p-loggables` ](//github.com/libp2p/go-libp2p-loggables ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-loggables.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-loggables) | N/A | [![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.org/libp2p/go-maddr-filter.svg?branch=master )](https://travis-ci.org/libp2p/go-maddr-filter) | N/A | [![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-libp2p-netutil` ](//github.com/libp2p/go-libp2p-netutil ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-netutil.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-netutil) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-netutil/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-netutil) | misc utilities |
| [`go-msgio` ](//github.com/libp2p/go-msgio ) | [![Travis CI ](https://travis-ci.org/libp2p/go-msgio.svg?branch=master )](https://travis-ci.org/libp2p/go-msgio) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-msgio/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-msgio) | length prefixed data channel |
| [`go-addr-util` ](//github.com/libp2p/go-addr-util ) | [![Travis CI ](https://travis-ci.org/libp2p/go-addr-util.svg?branch=master )](https://travis-ci.org/libp2p/go-addr-util) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-addr-util/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-addr-util) | address utilities for libp2p swarm |
| [`go-buffer-pool` ](//github.com/libp2p/go-buffer-pool ) | [![Travis CI ](https://travis-ci.org/libp2p/go-buffer-pool.svg?branch=master )](https://travis-ci.org/libp2p/go-buffer-pool) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-buffer-pool/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-buffer-pool) | a variable size buffer pool for go |
| [`go-libp2p-routing-helpers` ](//github.com/libp2p/go-libp2p-routing-helpers ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p-routing-helpers.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-routing-helpers) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-routing-helpers/ master )](https://ci.ipfs.team/job /libp2p/job/ go-libp2p-routing-helpers/job/master/ ) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-routing-helpers) | routing helpers |
| [`go-reuseport` ](//github.com/libp2p/go-reuseport ) | [![Travis CI ](https://travis-ci.org/libp2p/go-reuseport.svg?branch=master )](https://travis-ci.org/libp2p/go-reuseport) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-reuseport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-reuseport) | enables reuse of addresses |
| [`go-sockaddr` ](//github.com/libp2p/go-sockaddr ) | [![Travis CI ](https://travis-ci.org/libp2p/go-sockaddr.svg?branch=master )](https://travis-ci.org/libp2p/go-sockaddr) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-sockaddr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-sockaddr) | utils for sockaddr conversions |
| [`go-flow-metrics` ](//github.com/libp2p/go-flow-metrics ) | [![Travis CI ](https://travis-ci.org/libp2p/go-flow-metrics.svg?branch=master )](https://travis-ci.org/libp2p/go-flow-metrics) | N/A | [![codecov ](https://codecov.io/gh/libp2p/go-flow-metrics/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-flow-metrics) | metrics library |
| [`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-libp2p-netutil` ](//github.com/libp2p/go-libp2p-netutil ) | [![Travis CI ](https://travis-ci.com/libp2p/go-libp2p-netutil.svg?branch=master )](https://travis-ci.com/libp2p/go-libp2p-netutil) | [![codecov ](https://codecov.io/gh/libp2p/go-libp2p-netutil/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-libp2p-netutil) | misc utilities |
| [`go-msgio` ](//github.com/libp2p/go-msgio ) | [![Travis CI ](https://travis-ci.com/libp2p/go-msgio.svg?branch=master )](https://travis-ci.com/libp2p/go-msgio) | [![codecov ](https://codecov.io/gh/libp2p/go-msgio/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-msgio) | length prefixed data channel |
| [`go-addr-util` ](//github.com/libp2p/go-addr-util ) | [![Travis CI ](https://travis-ci.com/libp2p/go-addr-util.svg?branch=master )](https://travis-ci.com/libp2p/go-addr-util) | [![codecov ](https://codecov.io/gh/libp2p/go-addr-util/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-addr-util) | address utilities for libp2p swarm |
| [`go-buffer-pool` ](//github.com/libp2p/go-buffer-pool ) | [![Travis CI ](https://travis-ci.com/libp2p/go-buffer-pool.svg?branch=master )](https://travis-ci.com/libp2p/go-buffer-pool) | [![codecov ](https://codecov.io/gh/libp2p/go-buffer-pool/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-buffer-pool) | a variable size buffer pool for go |
| [`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) | routing helpers |
| [`go-reuseport` ](//github.com/libp2p/go-reuseport ) | [![Travis CI ](https://travis-ci.com/libp2p/go-reuseport.svg?branch=master )](https://travis-ci.com/libp2p/go-reuseport) | [![codecov ](https://codecov.io/gh/libp2p/go-reuseport/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-reuseport) | enables reuse of addresses |
| [`go-sockaddr` ](//github.com/libp2p/go-sockaddr ) | [![Travis CI ](https://travis-ci.com/libp2p/go-sockaddr.svg?branch=master )](https://travis-ci.com/libp2p/go-sockaddr) | [![codecov ](https://codecov.io/gh/libp2p/go-sockaddr/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-sockaddr) | utils for sockaddr conversions |
| [`go-flow-metrics` ](//github.com/libp2p/go-flow-metrics ) | [![Travis CI ](https://travis-ci.com/libp2p/go-flow-metrics.svg?branch=master )](https://travis-ci.com/libp2p/go-flow-metrics) | [![codecov ](https://codecov.io/gh/libp2p/go-flow-metrics/branch/master/graph/badge.svg )](https://codecov.io/gh/libp2p/go-flow-metrics) | metrics library |
| **Testing and examples** |
| [`go-testutil` ](//github.com/libp2p/go-testutil ) | [![Travis CI ](https://travis-ci.org/libp2p/go-testutil.svg?branch=master )](https://travis-ci.org/libp2p/go-testutil) | N/A | [![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-examples` ](//github.com/libp2p/go-libp2p-examples ) | [![Travis CI ](https://travis-ci.org /libp2p/go-libp2p-examples.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-examples) | [![jenkins ](https://ci.ipfs.team/buildStatus/i con?job=libp2p/go-libp2p-exa mples/master )](https://ci.ipfs.team/job /libp2p/job/ go-libp2p-examples/job/master/ ) | [![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-circuit-progs` ](//github.com/libp2p/go-libp2p-circuit-progs ) | [![Travis CI ](https://travis-ci.org/libp2p/go-libp2p-circuit-progs.svg?branch=master )](https://travis-ci.org/libp2p/go-libp2p-circuit-progs) | N/A | [![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-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-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-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 |
# Contribute