{
  "columns": [
    "Package",
    "Version",
    "Deps",
    "CI",
    "Coverage",
    "Lead Maintainer"
  ],
  "rows": [
    "Libp2p",
    ["libp2p/interface-libp2p", "interface-libp2p"],
    ["libp2p/js-libp2p", "libp2p"],

    "Connection",
    ["libp2p/interface-connection", "interface-connection"],

    "Transport",
    ["libp2p/interface-transport", "interface-transport"],
    ["libp2p/js-libp2p-tcp", "libp2p-tcp"],
    ["libp2p/js-libp2p-udp", "libp2p-udp"],
    ["libp2p/js-libp2p-udt", "libp2p-udt"],
    ["libp2p/js-libp2p-utp", "libp2p-utp"],
    ["libp2p/js-libp2p-webrtc-direct", "libp2p-webrtc-direct"],
    ["libp2p/js-libp2p-webrtc-star", "libp2p-webrtc-star"],
    ["libp2p/js-libp2p-websockets", "libp2p-websockets"],
    ["libp2p/js-libp2p-websocket-star", "libp2p-websocket-star"],
    ["libp2p/js-libp2p-websocket-star-rendezvous", "libp2p-websocket-star-rendezvous"],

    "Crypto Channels",
    ["libp2p/js-libp2p-secio", "libp2p-secio"],

    "Stream Muxers",
    ["libp2p/interface-stream-muxer", "interface-stream-muxer"],
    ["libp2p/js-libp2p-mplex", "libp2p-mplex"],
    ["libp2p/js-libp2p-spdy", "libp2p-spdy"],

    "Discovery",
    ["libp2p/interface-peer-discovery", "interface-peer-discovery"],
    ["libp2p/js-libp2p-bootstrap", "libp2p-bootstrap"],
    ["libp2p/js-libp2p-kad-dht", "libp2p-kad-dht"],
    ["libp2p/js-libp2p-mdns", "libp2p-mdns"],
    ["libp2p/js-libp2p-rendezvous", "libp2p-rendezvous"],
    ["libp2p/js-libp2p-webrtc-star", "libp2p-webrtc-star"],
    ["libp2p/js-libp2p-websocket-star", "libp2p-websocket-star"],

    "NAT Traversal",
    ["libp2p/js-libp2p-circuit", "libp2p-circuit"],
    ["libp2p/js-libp2p-nat-mngr", "libp2p-nat-mngr"],

    "Data Types",
    ["libp2p/js-peer-book", "peer-book"],
    ["libp2p/js-peer-id", "peer-id"],
    ["libp2p/js-peer-info", "peer-info"],

    "Content Routing",
    ["libp2p/interface-content-routing", "interface-content-routing"],
    ["libp2p/js-libp2p-delegated-content-routing", "libp2p-delegated-content-routing"],
    ["libp2p/js-libp2p-kad-dht", "libp2p-kad-dht"],

    "Peer Routing",
    ["libp2p/interface-peer-routing", "interface-peer-routing"],
    ["libp2p/js-libp2p-delegated-peer-routing", "libp2p-delegated-peer-routing"],
    ["libp2p/js-libp2p-kad-dht", "libp2p-kad-dht"],

    "Record Store",
    ["libp2p/interface-record-store", "interface-record-store"],
    ["libp2p/js-libp2p-record", "libp2p-record"],

    "Generics",
    ["libp2p/js-libp2p-connection-manager", "libp2p-connection-manager"],
    ["libp2p/js-libp2p-crypto", "libp2p-crypto"],
    ["libp2p/js-libp2p-crypto-secp256k1", "libp2p-crypto-secp256k1"],
    ["libp2p/js-libp2p-switch", "libp2p-switch"],

    "Extensions",
    ["libp2p/js-libp2p-floodsub", "libp2p-floodsub"],
    ["libp2p/js-libp2p-identify", "libp2p-identify"],
    ["libp2p/js-libp2p-keychain", "libp2p-keychain"],
    ["libp2p/js-libp2p-ping", "libp2p-ping"],
    ["libp2p/js-libp2p-pnet", "libp2p-pnet"],

    "Utilities",
    ["libp2p/js-p2pcat", "p2pcat"]
  ]
}
