The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-libp2p, reference main (0851ac), with Swift 6.4 for macOS (SPM) on 27 Sep 2026 21:59:07 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/1amageek/swift-libp2p.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/1amageek/swift-libp2p
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0851ac2 Complete QUIC interop release gates
Cloned https://github.com/1amageek/swift-libp2p.git
Revision (git rev-parse @):
0851ac2356a5d31fe07a10f93ff4188bb3c3d357
SUCCESS checkout https://github.com/1amageek/swift-libp2p.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/1amageek/swift-libp2p.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Provisioning 2 / 190]
[Constructing description]
[Pre-planning 1 / 4408]
[Planning 1 / 4408]
[Planning 2173 / 4408]
[Planning 3278 / 4408]
[Planning 4289 / 4408]
[Planning deferred tasks]
[Constructing 1 / 9293]
[Constructing 3822 / 9293]
[Starting]
[108 / 1534] QUICWire
[417 / 1534] P2PDiscoveryBeacon
[678 / 1534]
[682 / 1534]
[695 / 1546] SWIMWire
[701 / 1556]
[705 / 1583]
[715 / 1647] NetworkingTime
[739 / 1707]
[760 / 1707]
[784 / 1707]
[799 / 1707] SWIMWire
[814 / 1707]
[828 / 1707]
[836 / 1707] DNSWire
[847 / 1707] SWIMWire-product
[854 / 1707] SSLCryptoContracts-product
[859 / 1707] SSLCryptoContracts
[866 / 1707] _NIODataStructures
[871 / 1707] NetworkingTime
[880 / 1707] NetworkingTime
[907 / 1707] Logging
[922 / 1707] Logging
[925 / 1707] _NIODataStructures
[928 / 1707] Logging-product
[938 / 1707] SpanPreview
[944 / 1707] DTLSRecordCore
[953 / 1707] Logging
[966 / 1707] CNIOLLHTTP
[975 / 1722]
[984 / 1722] Atomics-product
[989 / 1722] Atomics
[996 / 1722] NetworkingTime
[1005 / 1726] SSLCryptoContracts
[1012 / 1755] TLSWireCore
[1030 / 1769] DTLSRecordCore
[1039 / 1785] DTLSRecordCore
[1058 / 1785] NetworkingDatagram
[1074 / 1835]
[1081 / 1835]
[1090 / 1835] TLSTypes
[1093 / 1835] TLSTypes
[1100 / 1835]
[1109 / 1835]
[1115 / 1835] SpanPreview
[1120 / 1835]
[1123 / 1835]
[1127 / 1835] QUICStreamCore
[1133 / 1835] NetworkingWASI
[1143 / 1835] NetworkingDatagram
[1149 / 1835] DTLSRecord-product
[1158 / 1850] NetworkingPOSIX
[1164 / 1860]
[1176 / 1880] NetworkingPOSIX
[1195 / 1880] QUICStreamCore
[1205 / 1880] QUICStreamCore
[1212 / 1880] SWIM
[1218 / 1880] NetworkingFoundationCompat
[1222 / 1880] SWIM
[1238 / 1880] QUICRecoveryCore
[1241 / 1880] QUICRecoveryCore
[1244 / 1880] NetworkingPOSIX
[1246 / 1880] NetworkingPOSIX
[1250 / 1880] NetworkingPOSIX-product
[1253 / 1880] NetworkingFoundationCompat-product
[1257 / 1892] SSLASN1
[1259 / 1892] SSLASN1
[1274 / 1892] SSLASN1
[1285 / 1894]
[1291 / 1897] SSLCore
[1299 / 1941] MDNS
[1311 / 1955] MDNS
[1314 / 1955] MDNS
[1326 / 1955] MDNS
[1335 / 1955] LibP2PCore
[1337 / 1955] LibP2PCore-product
[1342 / 1955] SSLCrypto
[1346 / 1955] SSLCrypto
[1348 / 1955] CNIOAtomics
[1351 / 1955] SSLCrypto
[1353 / 1955] LibP2PCore
[1360 / 1955] MDNS
[1364 / 1955] SSLCrypto
[1372 / 1955] DequeModule
[1374 / 1955] DequeModule
[1378 / 1955] DTLSWireCore
[1379 / 1955] DTLSWireCore
[1383 / 1955] DTLSWireCore
[1386 / 1956]
[1390 / 1958] DTLSWireCore
[1396 / 1960] DTLSHandshakeCore
[1401 / 1985] SSLX509
[1417 / 1985] SSLX509
[1419 / 1997] SSLX509
[1421 / 1997] SSLX509
[1430 / 2008] SSLX509-product
[1434 / 2008] QUICPacketProtectionCore
[1437 / 2008] QUICPacketProtectionCore
[1441 / 2008] NIOCore
[1445 / 2008] NIOCore
[1446 / 2008] Crypto
[1457 / 2008] SSLCrypto
[1460 / 2008] SSLDTLSMechanism
[1464 / 2008] DTLSHandshake-product
[1467 / 2008] Crypto
[1470 / 2008] DTLSHandshakeCore
[1472 / 2008] Crypto
[1474 / 2008] Crypto
[1475 / 2008]
[1478 / 2010]
[1481 / 2022] SSLDTLSMechanism
[1484 / 2033] SSLDTLSMechanism
[1491 / 2044] SSLTLS
[1495 / 2044] Crypto
[1503 / 2044] SSLTLS
[1505 / 2044] NIOCore
[1512 / 2044] SSLTLS
[1513 / 2044] SSLTLS
[1515 / 2044] SSLDTLSMechanism
[1516 / 2044] SSLTLS
[1521 / 2044] SSLTLS
[1522 / 2044] SSLTLS-product
[1526 / 2044] SSLDTLS
[1530 / 2044] QUICConnectionCore
[1534 / 2044] QUICConnectionCore
[1535 / 2044] QUICConnectionCore
[1542 / 2046] SSLCrypto-product
[1548 / 2050] NIOEmbedded
[1551 / 2066] SSLQUIC
[1555 / 2077] SSLDTLS
[1575 / 2081] SSLQUIC
[1578 / 2084] SSLQUIC-product
[1582 / 2100] NIOFoundationEssentialsCompat
[1601 / 2100] SSLDTLS
[1603 / 2100] SSLDTLS-product
[1608 / 2100] SSLQUIC
[1610 / 2100] QUICConnectionEngineCore-product
[1615 / 2100] SSLDTLS
[1620 / 2100] QUICConnectionCore
[1625 / 2100] NIOPosix
[1627 / 2100] NIOPosix
[1629 / 2100] NIOPosix
[1633 / 2100] NIOEmbedded
[1634 / 2100] NIOPosix
[1637 / 2100] NIOPosix
[1643 / 2101]
[1648 / 2104] SSLDTLSMechanism
[1655 / 2120] TLS
[1665 / 2127] TLS
[1675 / 2129] NIO
[1685 / 2129] NIOUDPTransport
[1695 / 2129] QUICTLS-product
[1700 / 2129] NIOEmbedded
[1704 / 2130] SSLDTLS
[1710 / 2133]
[1712 / 2133] QUIC
[1719 / 2144] QUIC
[1725 / 2160] QUIC
[1735 / 2171] WebRTC
[1740 / 2171] NIOFoundationCompat
[1754 / 2171] WebRTC
[1755 / 2171] QUIC-product
[1765 / 2171] NIOHTTP1
[1767 / 2171] NIOPosix
[1770 / 2171] NIOWebSocket
[1775 / 2171] NIOHTTP1
[1776 / 2171] NIOFoundationCompat-product
[1782 / 2174]
[1786 / 2174] LibP2PNode
[1793 / 2197] NIOWebSocket
[1796 / 2208] P2PCore
[1800 / 2208] LibP2PNode
[1809 / 2208] NIOWebSocket
[1816 / 2208] P2PCore
[1826 / 2208] P2PCore
[1827 / 2208] P2PTransport
[1835 / 2208] NIOHTTP1
[1840 / 2208] LibP2PNode
[1844 / 2210]
[1847 / 2212] NIOHTTP1
[1851 / 2216] P2PCertificate
[1854 / 2225] P2PTransport
[1855 / 2230] P2PPnet
[1870 / 2232] P2PSecurity
[1885 / 2261] P2PNegotiation
[1903 / 2264] P2PNegotiation
[1910 / 2264] P2PPnet
[1918 / 2264] P2PCertificate
[1929 / 2264] P2PNAT
[1932 / 2264] P2PPnet
[1943 / 2264] P2PNAT
[1948 / 2264] P2PProtocols
[1953 / 2264] P2PCertificate
[1959 / 2266] LibP2PNode
[1960 / 2267]
[1963 / 2272] P2PSecurityPlaintext
[1965 / 2272] P2PProtocols
[1968 / 2287] P2PTransportMemory
[1973 / 2301] P2PTransportWebSocket
[2002 / 2311] P2PTransportWebSocket-product
[2017 / 2318] P2PTransportMemory
[2032 / 2318] P2PTransportMemory
[2036 / 2318] P2PSecurityTLS
[2043 / 2318] P2PSecurityTLS
[2048 / 2318] P2PTransportQUIC
[2055 / 2318] P2PSecurityNoise
[2058 / 2318] P2PProtocols
[2065 / 2318] P2PPlumtree
[2071 / 2322] NIOHTTP1
[2073 / 2323]
[2076 / 2326]
[2083 / 2358] P2PMuxMplex
[2094 / 2395] P2PDiscoveryBeacon
[2123 / 2398] P2PTransportWebRTC
[2124 / 2398] P2PPlumtree
[2137 / 2398] P2PDiscoveryBeacon
[2151 / 2398] P2PTransportQUIC
[2155 / 2398] P2PTransportQUIC
[2158 / 2398] P2PRuntime
[2162 / 2398] P2PWebRTC
[2169 / 2398] P2PWebRTC
[2177 / 2398] P2PPlumtree
[2183 / 2398] P2PPing
[2185 / 2398] P2PPing-product
[2190 / 2398] P2PMuxYamux
[2196 / 2398] P2PMuxMplex-product
[2202 / 2398] P2PPing
[2206 / 2398] P2PDiscoveryBeacon
[2210 / 2398]
[2216 / 2404] P2PHTTP
[2217 / 2404] P2PGossipSub
[2219 / 2405]
[2225 / 2433] P2PHTTP
[2230 / 2433] P2PWebRTC
[2253 / 2453] P2PWebRTC-product
[2258 / 2453] P2PDiscoverySWIM
[2272 / 2453] P2PKademlia
[2275 / 2453] P2PKademlia
[2291 / 2453] P2PHTTP
[2296 / 2453] P2PGossipSub
[2299 / 2453] P2PGossipSub-product
[2301 / 2453] P2PGossipSub
[2303 / 2453] P2PHTTP
[2306 / 2453] P2PDiscoveryWiFiBeacon
[2310 / 2453] P2PDiscoverySWIM
[2316 / 2457] P2PDiscoveryCYCLON
[2318 / 2457] NIOWebSocket
[2329 / 2463] P2PCore-product
[2333 / 2463] P2PDiscoveryMDNS
[2337 / 2491] P2PCircuitRelay
[2340 / 2491] P2PDiscoveryCYCLON
[2358 / 2507] P2PDCUtR
[2372 / 2507] P2PDiscoveryPlumtree
[2391 / 2507] P2PDCUtR
[2402 / 2507] P2PCircuitRelay
[2406 / 2507] P2PDiscoveryCYCLON
[2413 / 2507] P2PCircuitRelay-product
[2418 / 2507] P2PCircuitRelay
[2420 / 2507] P2P
[2428 / 2507]
[2441 / 2507] P2PSessionTransport-product
[2457 / 2508] P2PKademlia
[2459 / 2508] P2PAutoNAT
[2470 / 2508]
[2485 / 2508] P2PKademlia-product
[2492 / 2508] P2P
[2503 / 2519] P2P
[2512 / 2520] P2P
[2512 / 2520] PingPongDemo-product
[2514 / 2522] PingPongDemo-product
[2515 / 2522] PingPongDemo-product
[2516 / 2522] P2P
[2520 / 2522] P2P-product
[2520 / 2522] PingPongDemo-product
Build complete! (46.94 sec)
Fetching https://github.com/1amageek/swift-webrtc.git
Fetching https://github.com/1amageek/swift-ssl.git
Fetching https://github.com/1amageek/swift-nio-udp.git
Fetching https://github.com/1amageek/swift-tls.git
Fetching https://github.com/1amageek/swift-quic.git
Fetching https://github.com/1amageek/swift-mDNS.git
Fetching https://github.com/1amageek/swift-SWIM.git
[1/1367] Fetching swift-tls
[2/1492] Fetching swift-tls, swift-nio-udp
[117/1904] Fetching swift-tls, swift-nio-udp, swift-swim
[274/2252] Fetching swift-tls, swift-nio-udp, swift-swim, swift-mdns
[382/4234] Fetching swift-tls, swift-nio-udp, swift-swim, swift-mdns, swift-quic
[399/5252] Fetching swift-tls, swift-nio-udp, swift-swim, swift-mdns, swift-quic, swift-webrtc
[491/8691] Fetching swift-tls, swift-nio-udp, swift-swim, swift-mdns, swift-quic, swift-webrtc, swift-ssl
Fetched https://github.com/1amageek/swift-nio-udp.git (1.11s)
Fetched https://github.com/1amageek/swift-mDNS.git (1.11s)
[2497/8218] Fetching swift-tls, swift-swim, swift-quic, swift-webrtc, swift-ssl
Fetching https://github.com/1amageek/swift-crypto.git
Fetching https://github.com/apple/swift-log.git
Fetched https://github.com/1amageek/swift-webrtc.git (1.30s)
[4157/7200] Fetching swift-tls, swift-swim, swift-quic, swift-ssl
Fetching https://github.com/apple/swift-nio.git
Fetched https://github.com/1amageek/swift-SWIM.git (1.38s)
Fetched https://github.com/1amageek/swift-tls.git (1.38s)
[4424/5421] Fetching swift-quic, swift-ssl
Fetched https://github.com/1amageek/swift-quic.git (1.38s)
[2477/3439] Fetching swift-ssl
Fetching https://github.com/1amageek/swift-networking.git
Fetched https://github.com/1amageek/swift-ssl.git (1.52s)
[1/12409] Fetching swift-crypto
[2/20574] Fetching swift-crypto, swift-log
[864/20674] Fetching swift-crypto, swift-log, swift-networking
Fetched https://github.com/1amageek/swift-networking.git (0.86s)
[3806/20574] Fetching swift-crypto, swift-log
[11021/106760] Fetching swift-crypto, swift-log, swift-nio
Fetched https://github.com/1amageek/swift-crypto.git (2.64s)
Fetched https://github.com/apple/swift-log.git (2.64s)
[31889/86186] Fetching swift-nio
Fetched https://github.com/apple/swift-nio.git (10.18s)
Computing version for https://github.com/1amageek/swift-webrtc.git
Computed https://github.com/1amageek/swift-webrtc.git at 3.0.0 (12.21s)
Computing version for https://github.com/1amageek/swift-quic.git
Computed https://github.com/1amageek/swift-quic.git at 2.0.2 (0.62s)
Computing version for https://github.com/1amageek/swift-nio-udp.git
Computed https://github.com/1amageek/swift-nio-udp.git at 1.1.5 (0.58s)
Computing version for https://github.com/1amageek/swift-SWIM.git
Computed https://github.com/1amageek/swift-SWIM.git at 2.0.0 (0.59s)
Computing version for https://github.com/1amageek/swift-mDNS.git
Computed https://github.com/1amageek/swift-mDNS.git at 2.0.0 (0.60s)
Computing version for https://github.com/1amageek/swift-crypto.git
Computed https://github.com/1amageek/swift-crypto.git at 4.5.4 (2.88s)
Computing version for https://github.com/1amageek/swift-networking.git
Computed https://github.com/1amageek/swift-networking.git at 0.1.0 (0.57s)
Computing version for https://github.com/1amageek/swift-tls.git
Computed https://github.com/1amageek/swift-tls.git at 2.1.0 (0.62s)
Computing version for https://github.com/1amageek/swift-ssl.git
Computed https://github.com/1amageek/swift-ssl.git at 0.4.0 (0.79s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.62s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.103.0 (0.70s)
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/1885] Fetching swift-atomics
[115/8868] Fetching swift-atomics, swift-system
[1847/36647] Fetching swift-atomics, swift-system, swift-collections
Fetched https://github.com/apple/swift-collections.git (3.47s)
Fetched https://github.com/apple/swift-atomics.git (3.47s)
Fetched https://github.com/apple/swift-system.git (3.47s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (4.12s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (0.69s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.60s)
Creating working copy for https://github.com/1amageek/swift-SWIM.git
Working copy of https://github.com/1amageek/swift-SWIM.git resolved at 2.0.0
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.1
Creating working copy for https://github.com/1amageek/swift-quic.git
Working copy of https://github.com/1amageek/swift-quic.git resolved at 2.0.2
Creating working copy for https://github.com/1amageek/swift-webrtc.git
Working copy of https://github.com/1amageek/swift-webrtc.git resolved at 3.0.0
Creating working copy for https://github.com/1amageek/swift-ssl.git
Working copy of https://github.com/1amageek/swift-ssl.git resolved at 0.4.0
Creating working copy for https://github.com/1amageek/swift-nio-udp.git
Working copy of https://github.com/1amageek/swift-nio-udp.git resolved at 1.1.5
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.8.1
Creating working copy for https://github.com/1amageek/swift-tls.git
Working copy of https://github.com/1amageek/swift-tls.git resolved at 2.1.0
Creating working copy for https://github.com/1amageek/swift-crypto.git
Working copy of https://github.com/1amageek/swift-crypto.git resolved at 4.5.4
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.103.0
Creating working copy for https://github.com/1amageek/swift-mDNS.git
Working copy of https://github.com/1amageek/swift-mDNS.git resolved at 2.0.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.1
Creating working copy for https://github.com/1amageek/swift-networking.git
Working copy of https://github.com/1amageek/swift-networking.git resolved at 0.1.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-networking",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.1.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-networking.git"
    },
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.91.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    },
    {
      "identity" : "swift-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.5.4",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-crypto.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.8.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "swift-mdns",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-mDNS.git"
    },
    {
      "identity" : "swift-swim",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-SWIM.git"
    },
    {
      "identity" : "swift-nio-udp",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.5",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-nio-udp.git"
    },
    {
      "identity" : "swift-quic",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-quic.git"
    },
    {
      "identity" : "swift-ssl",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-ssl.git"
    },
    {
      "identity" : "swift-tls",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-tls.git"
    },
    {
      "identity" : "swift-webrtc",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/1amageek/swift-webrtc.git"
    }
  ],
  "manifest_display_name" : "swift-libp2p",
  "name" : "swift-libp2p",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "26.0"
    },
    {
      "name" : "ios",
      "version" : "26.0"
    },
    {
      "name" : "tvos",
      "version" : "26.0"
    },
    {
      "name" : "watchos",
      "version" : "26.0"
    },
    {
      "name" : "visionos",
      "version" : "26.0"
    }
  ],
  "products" : [
    {
      "name" : "LibP2PCore",
      "targets" : [
        "LibP2PCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PCore",
      "targets" : [
        "P2PCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "LibP2PNode",
      "targets" : [
        "LibP2PNode"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransport",
      "targets" : [
        "P2PTransport"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PSessionTransport",
      "targets" : [
        "P2PSessionTransport"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransportTCP",
      "targets" : [
        "P2PTransportTCP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransportQUIC",
      "targets" : [
        "P2PTransportQUIC"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransportWebRTC",
      "targets" : [
        "P2PTransportWebRTC"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PWebRTC",
      "targets" : [
        "P2PWebRTC"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransportWebSocket",
      "targets" : [
        "P2PTransportWebSocket"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PTransportMemory",
      "targets" : [
        "P2PTransportMemory"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PSecurity",
      "targets" : [
        "P2PSecurity"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PCertificate",
      "targets" : [
        "P2PCertificate"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PSecurityNoise",
      "targets" : [
        "P2PSecurityNoise"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PSecurityPlaintext",
      "targets" : [
        "P2PSecurityPlaintext"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PSecurityTLS",
      "targets" : [
        "P2PSecurityTLS"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PPnet",
      "targets" : [
        "P2PPnet"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PMux",
      "targets" : [
        "P2PMux"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PMuxYamux",
      "targets" : [
        "P2PMuxYamux"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PMuxMplex",
      "targets" : [
        "P2PMuxMplex"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PNegotiation",
      "targets" : [
        "P2PNegotiation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscovery",
      "targets" : [
        "P2PDiscovery"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoveryMDNS",
      "targets" : [
        "P2PDiscoveryMDNS"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoverySWIM",
      "targets" : [
        "P2PDiscoverySWIM"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoveryCYCLON",
      "targets" : [
        "P2PDiscoveryCYCLON"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoveryPlumtree",
      "targets" : [
        "P2PDiscoveryPlumtree"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoveryBeacon",
      "targets" : [
        "P2PDiscoveryBeacon"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDiscoveryWiFiBeacon",
      "targets" : [
        "P2PDiscoveryWiFiBeacon"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PNAT",
      "targets" : [
        "P2PNAT"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PProtocols",
      "targets" : [
        "P2PProtocols"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PIdentify",
      "targets" : [
        "P2PIdentify"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PPing",
      "targets" : [
        "P2PPing"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PGossipSub",
      "targets" : [
        "P2PGossipSub"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PCircuitRelay",
      "targets" : [
        "P2PCircuitRelay"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PDCUtR",
      "targets" : [
        "P2PDCUtR"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PAutoNAT",
      "targets" : [
        "P2PAutoNAT"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PKademlia",
      "targets" : [
        "P2PKademlia"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PPlumtree",
      "targets" : [
        "P2PPlumtree"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PRendezvous",
      "targets" : [
        "P2PRendezvous"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PHTTP",
      "targets" : [
        "P2PHTTP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2PRuntime",
      "targets" : [
        "P2PRuntime"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "P2P",
      "targets" : [
        "P2P"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "PingPongDemo",
      "targets" : [
        "PingPongDemo"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PingPongDemo",
      "module_type" : "SwiftTarget",
      "name" : "PingPongDemo",
      "path" : "Examples/PingPongDemo",
      "product_memberships" : [
        "PingPongDemo"
      ],
      "sources" : [
        "PingPongDemo.swift"
      ],
      "target_dependencies" : [
        "P2P",
        "P2PSecurityPlaintext"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "P2PWebRTC",
      "module_type" : "SwiftTarget",
      "name" : "P2PWebRTC",
      "path" : "Sources/Protocols/WebRTC",
      "product_dependencies" : [
        "Logging",
        "NIOCore",
        "NIOPosix"
      ],
      "product_memberships" : [
        "P2PWebRTC",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "P2PWebRTC.swift",
        "WebRTCPrivateConnectionProvider.swift",
        "WebRTCPrivateRuntimeError.swift",
        "WebRTCPrivateSignalingProtocol.swift",
        "WebRTCPrivateSignalingService.swift"
      ],
      "target_dependencies" : [
        "P2PTransportWebRTC",
        "P2PCore",
        "P2PMux",
        "P2PProtocols",
        "P2PRuntime",
        "P2PTransport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransportWebSocketTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportWebSocketTests",
      "path" : "Tests/Transport/WebSocketTests",
      "product_dependencies" : [
        "NIOCore",
        "NIOEmbedded",
        "NIOWebSocket",
        "TLS"
      ],
      "sources" : [
        "WebSocketTransportTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PTransportWebSocket",
        "P2PTransport",
        "P2PCore",
        "P2PSecurityTLS"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PTransportWebSocket",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportWebSocket",
      "path" : "Sources/Transport/WebSocket",
      "product_dependencies" : [
        "Logging",
        "NIOCore",
        "NIOPosix",
        "NIOHTTP1",
        "NIOWebSocket",
        "TLS"
      ],
      "product_memberships" : [
        "P2PTransportWebSocket"
      ],
      "sources" : [
        "SwiftTLSChannelHandler.swift",
        "WebSocketConnection.swift",
        "WebSocketListener.swift",
        "WebSocketTransport.swift"
      ],
      "target_dependencies" : [
        "P2PTransport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransportWebRTCTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportWebRTCTests",
      "path" : "Tests/Transport/WebRTCTests",
      "product_dependencies" : [
        "WebRTC",
        "NIOCore",
        "NIOPosix",
        "NIOEmbedded"
      ],
      "sources" : [
        "WebRTCBoundedFIFOTests.swift",
        "WebRTCCrossRouteFIFOTests.swift",
        "WebRTCE2ETests.swift",
        "WebRTCLocalhostIntegrationTests.swift",
        "WebRTCMuxedConnectionTests.swift",
        "WebRTCMuxedStreamTests.swift",
        "WebRTCNoiseAuthenticationTests.swift",
        "WebRTCPrivateConnectionTests.swift",
        "WebRTCPrivateEventConsumerTests.swift",
        "WebRTCPublicErrorTests.swift",
        "WebRTCStreamFrameCodecTests.swift",
        "WebRTCTestCertificate.swift",
        "WebRTCTestConfiguration.swift",
        "WebRTCTransportTests.swift",
        "WebRTCUDPHandlerTests.swift",
        "WebRTCUDPOutboundQueueTests.swift",
        "WebRTCUDPSocketTests.swift",
        "WebRTCUDPTransportFailureMapperTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PTransportWebRTC",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PMux",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PTransportWebRTC",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportWebRTC",
      "path" : "Sources/Transport/WebRTC",
      "product_dependencies" : [
        "Logging",
        "WebRTC",
        "NIOCore",
        "NIOPosix"
      ],
      "product_memberships" : [
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "WebRTCAuthenticatedEventConsumer.swift",
        "WebRTCBoundedFIFO.swift",
        "WebRTCCandidateGatherer.swift",
        "WebRTCCandidateRouteReservation.swift",
        "WebRTCDatagramEgress.swift",
        "WebRTCDirectICECredentials.swift",
        "WebRTCMultiaddrConversion.swift",
        "WebRTCMultiaddrHost.swift",
        "WebRTCMuxedConnection.swift",
        "WebRTCMuxedConnectionError.swift",
        "WebRTCMuxedConnectionLimits.swift",
        "WebRTCMuxedStream.swift",
        "WebRTCMuxedStreamLimits.swift",
        "WebRTCNoiseAuthentication.swift",
        "WebRTCNoisePrologue.swift",
        "WebRTCPreparedUDPSocket.swift",
        "WebRTCPrivateCandidatePolicy.swift",
        "WebRTCPrivateConnectionEstablisher.swift",
        "WebRTCPrivateConnectionEstablishing.swift",
        "WebRTCPrivateDataChannelHandshake.swift",
        "WebRTCPrivateEventConsumer.swift",
        "WebRTCPrivateMultiaddr.swift",
        "WebRTCPrivateTransportConfiguration.swift",
        "WebRTCPrivateTransportError.swift",
        "WebRTCSTUNDiscoveryError.swift",
        "WebRTCSTUNServer.swift",
        "WebRTCSessionListener.swift",
        "WebRTCSignalingInbox.swift",
        "WebRTCStreamError.swift",
        "WebRTCStreamFrame.swift",
        "WebRTCStreamFrameCodec.swift",
        "WebRTCStreamFrameDecoder.swift",
        "WebRTCStreamFrameError.swift",
        "WebRTCStreamFrameFlag.swift",
        "WebRTCTURNAllocation.swift",
        "WebRTCTURNServer.swift",
        "WebRTCTransport.swift",
        "WebRTCTransportCertificate.swift",
        "WebRTCUDPEndpoint.swift",
        "WebRTCUDPHandler.swift",
        "WebRTCUDPHandlerLimits.swift",
        "WebRTCUDPInitialDatagramClassifier.swift",
        "WebRTCUDPOutboundQueue.swift",
        "WebRTCUDPRouteRegistrationFailure.swift",
        "WebRTCUDPRouteReservation.swift",
        "WebRTCUDPSocket.swift",
        "WebRTCUDPSocketIdentity.swift",
        "WebRTCUDPTransportFailureClassification.swift",
        "WebRTCUDPTransportFailureMapper.swift",
        "WebRTCUDPTransportLimits.swift"
      ],
      "target_dependencies" : [
        "P2PTransport",
        "P2PSessionTransport",
        "P2PCore",
        "P2PMux",
        "P2PSecurityNoise"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransportTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportTests",
      "path" : "Tests/Transport/P2PTransportTests",
      "product_dependencies" : [
        "NIOCore",
        "NIOPosix",
        "NIOEmbedded"
      ],
      "sources" : [
        "MemoryTransportTests.swift",
        "TCPTransportTests.swift",
        "TransportTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PTransport",
        "P2PTransportMemory",
        "P2PTransportTCP",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PTransportTCP",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportTCP",
      "path" : "Sources/Transport/TCP",
      "product_dependencies" : [
        "Logging",
        "NIOCore",
        "NIOPosix"
      ],
      "product_memberships" : [
        "P2PTransportTCP",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "TCPConnection.swift",
        "TCPListener.swift",
        "TCPTransport.swift"
      ],
      "target_dependencies" : [
        "P2PTransport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransportQUICTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportQUICTests",
      "path" : "Tests/Transport/QUICTests",
      "product_dependencies" : [
        "NetworkingCore",
        "NIOCore"
      ],
      "sources" : [
        "MultiaddrConversionTests.swift",
        "QUICLiveIntegrationTests.swift",
        "QUICTransportTests.swift"
      ],
      "target_dependencies" : [
        "P2PTransportQUIC",
        "P2PCore",
        "P2PMux",
        "P2PSessionTransport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PTransportQUIC",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportQUIC",
      "path" : "Sources/Transport/QUIC",
      "product_dependencies" : [
        "NetworkingCore",
        "NetworkingDatagram",
        "NetworkingPOSIX",
        "NetworkingTime",
        "NIOCore",
        "QUIC",
        "QUICWire",
        "QUICConnectionEngineCore",
        "SSLCrypto",
        "SSLCryptoContracts"
      ],
      "product_memberships" : [
        "P2PTransportQUIC"
      ],
      "sources" : [
        "MultiaddrConversion.swift",
        "QUICMuxedConnection.swift",
        "QUICMuxedStream.swift",
        "QUICSessionListener.swift",
        "QUICTransport.swift"
      ],
      "target_dependencies" : [
        "P2PTransport",
        "P2PSessionTransport",
        "P2PCore",
        "P2PMux",
        "LibP2PNode"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransportMemory",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransportMemory",
      "path" : "Sources/Transport/Memory",
      "product_memberships" : [
        "P2PTransportMemory"
      ],
      "sources" : [
        "MemoryChannel.swift",
        "MemoryConnection.swift",
        "MemoryHub.swift",
        "MemoryListener.swift",
        "MemoryTransport.swift"
      ],
      "target_dependencies" : [
        "P2PTransport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTransport",
      "module_type" : "SwiftTarget",
      "name" : "P2PTransport",
      "path" : "Sources/Transport/P2PTransport",
      "product_memberships" : [
        "P2PTransport",
        "P2PSessionTransport",
        "P2PTransportTCP",
        "P2PTransportQUIC",
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PTransportWebSocket",
        "P2PTransportMemory",
        "P2PCircuitRelay",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "ByteListener.swift",
        "ByteTransport.swift",
        "TransportAddressing.swift",
        "TransportError.swift",
        "TransportPathKind.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PTests",
      "path" : "Tests/Integration/P2PTests",
      "sources" : [
        "AutoRelayServiceTests.swift",
        "BackoffStrategyTests.swift",
        "BlackHoleDetectorTests.swift",
        "ConnectionPoolTests.swift",
        "DataPathCopyGuardTests.swift",
        "DialRankerTests.swift",
        "DiscoveryIntegrationTests.swift",
        "HealthMonitorTests.swift",
        "IdentifyIntegrationTests.swift",
        "NodeDSLTests.swift",
        "NodeE2ETests.swift",
        "NodeLifecycleGuardTests.swift",
        "NodeTraversalIntegrationTests.swift",
        "ObservedAddressManagerTests.swift",
        "P2PTests.swift",
        "ReconnectionPolicyTests.swift",
        "RelaySelectorTests.swift",
        "ResourceManagerTests.swift",
        "SecurityHardeningTests.swift",
        "SmartDialerTests.swift",
        "SupernodeServiceTests.swift",
        "TraversalCoordinatorTests.swift",
        "TraversalEventStreamTests.swift",
        "TraversalMechanismDirectTests.swift",
        "TraversalMechanismHolePunchTests.swift",
        "TraversalMechanismLocalDirectTests.swift",
        "TraversalMechanismRelayTests.swift",
        "TraversalPolicyTests.swift",
        "TraversalTimeoutTests.swift"
      ],
      "target_dependencies" : [
        "P2P",
        "P2PTransportMemory",
        "P2PSessionTransport",
        "P2PSecurityPlaintext",
        "P2PMuxYamux",
        "P2PPing",
        "P2PIdentify",
        "P2PPnet"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PTestSupport",
      "module_type" : "SwiftTarget",
      "name" : "P2PTestSupport",
      "path" : "Tests/Support/P2PTestSupport",
      "sources" : [
        "LiveNetworkTests.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PSessionTransport",
      "module_type" : "SwiftTarget",
      "name" : "P2PSessionTransport",
      "path" : "Sources/Transport/SessionTransport",
      "product_memberships" : [
        "P2PSessionTransport",
        "P2PTransportQUIC",
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "SessionTransport.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "P2PTransport",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PSecurityTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityTests",
      "path" : "Tests/Security/P2PSecurityTests",
      "sources" : [
        "SecurityTests.swift"
      ],
      "target_dependencies" : [
        "P2PSecurity",
        "P2PSecurityPlaintext"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PSecurityTLSTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityTLSTests",
      "path" : "Tests/Security/TLSTests",
      "product_dependencies" : [
        "TLS"
      ],
      "sources" : [
        "AutoTLSTests.swift",
        "TLSCertificateTests.swift",
        "TLSHandshakeE2ETests.swift",
        "TLSRecordBufferTests.swift",
        "TLSTamperTests.swift"
      ],
      "target_dependencies" : [
        "P2PSecurityTLS",
        "P2PCertificate",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PSecurityTLS",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityTLS",
      "path" : "Sources/Security/TLS",
      "product_dependencies" : [
        "Crypto",
        "TLS"
      ],
      "product_memberships" : [
        "P2PSecurityTLS"
      ],
      "sources" : [
        "AutoTLS.swift",
        "TLSAsyncOperationGate.swift",
        "TLSByteBufferBorrow.swift",
        "TLSCertificate.swift",
        "TLSConnection.swift",
        "TLSError.swift",
        "TLSRecordBuffer.swift",
        "TLSUpgrader.swift"
      ],
      "target_dependencies" : [
        "P2PSecurity",
        "P2PCertificate"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PSecurityPlaintextTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityPlaintextTests",
      "path" : "Tests/Security/PlaintextTests",
      "sources" : [
        "PlaintextTests.swift"
      ],
      "target_dependencies" : [
        "P2PSecurityPlaintext",
        "P2PSecurity",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PSecurityPlaintext",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityPlaintext",
      "path" : "Sources/Security/Plaintext",
      "product_memberships" : [
        "P2PSecurityPlaintext",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "PlaintextConnection.swift",
        "PlaintextUpgrader.swift"
      ],
      "target_dependencies" : [
        "P2PSecurity"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PSecurityNoiseTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityNoiseTests",
      "path" : "Tests/Security/NoiseTests",
      "sources" : [
        "NoiseCryptoStateTests.swift",
        "NoiseHandshakeTests.swift",
        "NoiseIntegrationTests.swift",
        "NoiseKATTests.swift",
        "NoisePayloadTests.swift",
        "NoisePeerAuthenticatorTests.swift"
      ],
      "target_dependencies" : [
        "P2PSecurityNoise",
        "P2PTransportMemory"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PSecurityNoise",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurityNoise",
      "path" : "Sources/Security/Noise",
      "product_dependencies" : [
        "Crypto",
        "NetworkingCore",
        "SSLCryptoContracts",
        "SSLCrypto"
      ],
      "product_memberships" : [
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PSecurityNoise",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "NoiseConnection.swift",
        "NoiseCryptoState.swift",
        "NoiseError.swift",
        "NoiseHandshake.swift",
        "NoisePayload.swift",
        "NoisePeerAuthenticationCache.swift",
        "NoisePeerAuthenticator.swift",
        "NoisePreparedIdentity.swift",
        "NoiseUpgrader.swift"
      ],
      "target_dependencies" : [
        "P2PSecurity",
        "LibP2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PSecurity",
      "module_type" : "SwiftTarget",
      "name" : "P2PSecurity",
      "path" : "Sources/Security/P2PSecurity",
      "product_memberships" : [
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PSecurity",
        "P2PSecurityNoise",
        "P2PSecurityPlaintext",
        "P2PSecurityTLS",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "P2PSecurity.swift",
        "SecureChannel.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PRuntime",
      "module_type" : "SwiftTarget",
      "name" : "P2PRuntime",
      "path" : "Sources/Runtime/P2PRuntime",
      "product_memberships" : [
        "P2PWebRTC",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "BackoffStrategy.swift",
        "ConnectionDirection.swift",
        "ConnectionGater.swift",
        "ConnectionLimits.swift",
        "ConnectionProvider.swift",
        "ConnectionProviderLifecycle.swift",
        "ConnectionProviderRuntimeContext.swift",
        "ConnectionUpgrader.swift",
        "DisconnectReason.swift",
        "DiscoveryRuntimeServices.swift",
        "PoolConfiguration.swift",
        "ReconnectionPolicy.swift",
        "RuntimeComposition.swift",
        "RuntimeConfiguration.swift",
        "RuntimeContextBindingConnectionProvider.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PSecurity",
        "P2PMux",
        "P2PNegotiation",
        "P2PDiscovery",
        "P2PProtocols"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PRendezvousTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PRendezvousTests",
      "path" : "Tests/Protocols/RendezvousTests",
      "sources" : [
        "RendezvousTests.swift"
      ],
      "target_dependencies" : [
        "P2PRendezvous",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PRendezvous",
      "module_type" : "SwiftTarget",
      "name" : "P2PRendezvous",
      "path" : "Sources/Protocols/Rendezvous",
      "product_memberships" : [
        "P2PRendezvous"
      ],
      "sources" : [
        "RendezvousError.swift",
        "RendezvousMessages.swift",
        "RendezvousPoint.swift",
        "RendezvousProtocol.swift",
        "RendezvousService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PProtocols",
      "module_type" : "SwiftTarget",
      "name" : "P2PProtocols",
      "path" : "Sources/Protocols/P2PProtocols",
      "product_memberships" : [
        "P2PWebRTC",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PProtocols",
        "P2PIdentify",
        "P2PPing",
        "P2PGossipSub",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PAutoNAT",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PRendezvous",
        "P2PHTTP",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "ConnectionLimit.swift",
        "ConnectionScopedStreamOpener.swift",
        "DiscoveryRegistration+P2PProtocols.swift",
        "InboundConnectionAdmitter.swift",
        "P2PProtocols.swift",
        "ServicePipeline.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "P2PMux",
        "P2PDiscovery"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PPnetTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PPnetTests",
      "path" : "Tests/Security/PnetTests",
      "sources" : [
        "PnetTests.swift"
      ],
      "target_dependencies" : [
        "P2PPnet",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PPnet",
      "module_type" : "SwiftTarget",
      "name" : "P2PPnet",
      "path" : "Sources/Security/Pnet",
      "product_dependencies" : [
        "Crypto"
      ],
      "product_memberships" : [
        "P2PPnet",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "PnetConnection.swift",
        "PnetError.swift",
        "PnetProtector.swift",
        "XSalsa20.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PPlumtreeTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PPlumtreeTests",
      "path" : "Tests/Protocols/PlumtreeTests",
      "sources" : [
        "LazyPushBufferTests.swift",
        "PlumtreeIntegrationTests.swift",
        "PlumtreeProtobufTests.swift",
        "PlumtreeRouterTests.swift",
        "PlumtreeServiceTests.swift"
      ],
      "target_dependencies" : [
        "P2PPlumtree",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PPlumtree",
      "module_type" : "SwiftTarget",
      "name" : "P2PPlumtree",
      "path" : "Sources/Protocols/Plumtree",
      "product_memberships" : [
        "P2PDiscoveryPlumtree",
        "P2PPlumtree",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "LazyPushBuffer.swift",
        "PlumtreeConfiguration.swift",
        "PlumtreeError.swift",
        "PlumtreeEvent.swift",
        "PlumtreeMessage.swift",
        "PlumtreeProtobuf.swift",
        "PlumtreeRouter.swift",
        "PlumtreeService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PPingTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PPingTests",
      "path" : "Tests/Protocols/PingTests",
      "product_dependencies" : [
        "QUIC"
      ],
      "sources" : [
        "PingE2ETests.swift",
        "PingEdgeCaseTests.swift",
        "PingServiceTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PPing",
        "P2PCore",
        "P2PProtocols",
        "P2PTransportQUIC",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PMux"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PPing",
      "module_type" : "SwiftTarget",
      "name" : "P2PPing",
      "path" : "Sources/Protocols/Ping",
      "product_memberships" : [
        "P2PPing",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "PingResult.swift",
        "PingService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PNegotiationTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PNegotiationTests",
      "path" : "Tests/Negotiation/P2PNegotiationTests",
      "sources" : [
        "NegotiationEdgeCaseTests.swift",
        "NegotiationTests.swift"
      ],
      "target_dependencies" : [
        "P2PNegotiation",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PNegotiation",
      "module_type" : "SwiftTarget",
      "name" : "P2PNegotiation",
      "path" : "Sources/Negotiation/P2PNegotiation",
      "product_memberships" : [
        "P2PWebRTC",
        "P2PNegotiation",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "P2PNegotiation.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PNATTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PNATTests",
      "path" : "Tests/NAT/P2PNATTests",
      "sources" : [
        "NATDeviceTypeTests.swift",
        "NATPortMapperTests.swift",
        "NetworkUtilsTests.swift",
        "SecurityValidationTests.swift",
        "UDPSocketSourceTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PNAT"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PNAT",
      "module_type" : "SwiftTarget",
      "name" : "P2PNAT",
      "path" : "Sources/NAT/P2PNAT",
      "product_memberships" : [
        "P2PNAT",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "IPAddressValidator.swift",
        "NATDeviceType.swift",
        "NATGatewayType.swift",
        "NATPMPHandler.swift",
        "NATPortMapper.swift",
        "NATPortMapperConfiguration.swift",
        "NATPortMapperError.swift",
        "NATPortMapperEvent.swift",
        "NATProtocolHandler.swift",
        "NATTransportProtocol.swift",
        "NetworkUtils.swift",
        "PCPHandler.swift",
        "PortMapping.swift",
        "UDPSocket.swift",
        "UPnPHandler.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PMuxYamuxTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PMuxYamuxTests",
      "path" : "Tests/Mux/YamuxTests",
      "sources" : [
        "ControlFrameQueueTests.swift",
        "Mocks/MockSecuredConnection.swift",
        "YamuxAcceptCancellationTests.swift",
        "YamuxConnectionTests.swift",
        "YamuxFlowControlTests.swift",
        "YamuxFrameTests.swift",
        "YamuxStreamTests.swift"
      ],
      "target_dependencies" : [
        "P2PMuxYamux"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PMuxYamux",
      "module_type" : "SwiftTarget",
      "name" : "P2PMuxYamux",
      "path" : "Sources/Mux/Yamux",
      "product_memberships" : [
        "P2PMuxYamux",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "ConnectionFlowController.swift",
        "ControlFrameQueue.swift",
        "FlowController.swift",
        "YamuxConnection.swift",
        "YamuxFrame.swift",
        "YamuxMuxer.swift",
        "YamuxStream.swift"
      ],
      "target_dependencies" : [
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PMuxTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PMuxTests",
      "path" : "Tests/Mux/P2PMuxTests",
      "sources" : [
        "MuxTests.swift"
      ],
      "target_dependencies" : [
        "P2PMux",
        "P2PMuxYamux",
        "P2PMuxMplex"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PMuxMplexTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PMuxMplexTests",
      "path" : "Tests/Mux/MplexTests",
      "sources" : [
        "Mocks/MockSecuredConnection.swift",
        "MplexAcceptCancellationTests.swift",
        "MplexConcurrencyTests.swift",
        "MplexConnectionTests.swift",
        "MplexFrameTests.swift",
        "MplexMuxerTests.swift",
        "MplexStreamTests.swift"
      ],
      "target_dependencies" : [
        "P2PMuxMplex",
        "P2PTransportMemory",
        "P2PSecurityPlaintext"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PMuxMplex",
      "module_type" : "SwiftTarget",
      "name" : "P2PMuxMplex",
      "path" : "Sources/Mux/Mplex",
      "product_memberships" : [
        "P2PMuxMplex"
      ],
      "sources" : [
        "MplexConnection.swift",
        "MplexControlFrameQueue.swift",
        "MplexFrame.swift",
        "MplexMuxer.swift",
        "MplexStream.swift"
      ],
      "target_dependencies" : [
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PMux",
      "module_type" : "SwiftTarget",
      "name" : "P2PMux",
      "path" : "Sources/Mux/P2PMux",
      "product_dependencies" : [
        "NIOCore"
      ],
      "product_memberships" : [
        "P2PSessionTransport",
        "P2PTransportQUIC",
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PMux",
        "P2PMuxYamux",
        "P2PMuxMplex",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PProtocols",
        "P2PIdentify",
        "P2PPing",
        "P2PGossipSub",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PAutoNAT",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PRendezvous",
        "P2PHTTP",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "P2PMux.swift",
        "StreamSession.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PKademliaTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PKademliaTests",
      "path" : "Tests/Protocols/KademliaTests",
      "sources" : [
        "IPNSRecordOverflowTests.swift",
        "IPNSValidatorTests.swift",
        "KademliaSecurityTests.swift",
        "KademliaShutdownTests.swift",
        "KademliaTests.swift",
        "PeerLatencyTrackerTests.swift",
        "PersistentStorageTests.swift",
        "RandomWalkTests.swift",
        "SKademliaTests.swift"
      ],
      "target_dependencies" : [
        "P2PKademlia"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PKademlia",
      "module_type" : "SwiftTarget",
      "name" : "P2PKademlia",
      "path" : "Sources/Protocols/Kademlia",
      "product_memberships" : [
        "P2PKademlia",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "IPNSRecord.swift",
        "IPNSValidator.swift",
        "KBucket.swift",
        "KademliaError.swift",
        "KademliaEvent.swift",
        "KademliaKey.swift",
        "KademliaMessages.swift",
        "KademliaProtobuf.swift",
        "KademliaProtocol.swift",
        "KademliaQuery.swift",
        "KademliaService.swift",
        "PeerLatencyTracker.swift",
        "ProviderStore.swift",
        "RecordStore.swift",
        "RecordValidator.swift",
        "RoutingTable.swift",
        "SKademliaConfig.swift",
        "Storage/FileProviderStorage.swift",
        "Storage/FileRecordStorage.swift",
        "Storage/InMemoryProviderStorage.swift",
        "Storage/InMemoryRecordStorage.swift",
        "Storage/ProviderStorage.swift",
        "Storage/RecordStorage.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PIdentifyTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PIdentifyTests",
      "path" : "Tests/Protocols/IdentifyTests",
      "product_dependencies" : [
        "QUIC"
      ],
      "sources" : [
        "IdentifyE2ETests.swift",
        "IdentifyProtobufTests.swift",
        "IdentifyServiceTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PIdentify",
        "P2PCore",
        "P2PMux",
        "P2PProtocols",
        "P2PTransportQUIC",
        "P2PTransport",
        "P2PSessionTransport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PIdentify",
      "module_type" : "SwiftTarget",
      "name" : "P2PIdentify",
      "path" : "Sources/Protocols/Identify",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "P2PIdentify",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "IdentifyError.swift",
        "IdentifyInfo.swift",
        "IdentifyProtobuf.swift",
        "IdentifyService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PHTTPTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PHTTPTests",
      "path" : "Tests/Protocols/HTTPTests",
      "sources" : [
        "HTTPServiceTests.swift"
      ],
      "target_dependencies" : [
        "P2PHTTP",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PHTTP",
      "module_type" : "SwiftTarget",
      "name" : "P2PHTTP",
      "path" : "Sources/Protocols/HTTP",
      "product_memberships" : [
        "P2PHTTP"
      ],
      "sources" : [
        "HTTPCodec.swift",
        "HTTPError.swift",
        "HTTPMessages.swift",
        "HTTPProtocol.swift",
        "HTTPService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PGossipSubTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PGossipSubTests",
      "path" : "Tests/Protocols/GossipSubTests",
      "sources" : [
        "ExplicitPeeringTests.swift",
        "ExtendedValidatorTests.swift",
        "FloodSubCompatibilityTests.swift",
        "GossipSubProtobufTests.swift",
        "GossipSubRouterTests.swift",
        "GossipSubSecurityTests.swift",
        "HeartbeatManagerTests.swift",
        "MeshStateTests.swift",
        "MessageCacheTests.swift",
        "MessageIDTests.swift",
        "MessageSigningTests.swift",
        "OpportunisticGraftTests.swift",
        "PeerScorerTests.swift",
        "TopicTests.swift",
        "TracingTests.swift"
      ],
      "target_dependencies" : [
        "P2PGossipSub",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PGossipSub",
      "module_type" : "SwiftTarget",
      "name" : "P2PGossipSub",
      "path" : "Sources/Protocols/GossipSub",
      "product_memberships" : [
        "P2PGossipSub",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "Core/Message.swift",
        "Core/MessageID.swift",
        "Core/Subscription.swift",
        "Core/SubscriptionFilter.swift",
        "Core/Topic.swift",
        "GossipSubConfiguration.swift",
        "GossipSubError.swift",
        "GossipSubEvent.swift",
        "GossipSubService.swift",
        "Heartbeat/HeartbeatManager.swift",
        "Router/GossipPromises.swift",
        "Router/GossipSubRouter.swift",
        "Router/MeshState.swift",
        "Router/MessageCache.swift",
        "Router/PeerState.swift",
        "Scoring/PeerScorer.swift",
        "Scoring/TopicScoreParams.swift",
        "Tracing/GossipSubTracer.swift",
        "Tracing/JSONTracer.swift",
        "Wire/ControlMessage.swift",
        "Wire/GossipSubProtobuf.swift",
        "Wire/GossipSubRPC.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryWiFiBeaconTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryWiFiBeaconTests",
      "path" : "Tests/Discovery/WiFiBeaconTests",
      "sources" : [
        "WiFiBeaconAdapterTests.swift",
        "WiFiBeaconConfigurationTests.swift",
        "WiFiBeaconFrameTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PDiscoveryWiFiBeacon",
        "P2PDiscoveryBeacon",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDiscoveryWiFiBeacon",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryWiFiBeacon",
      "path" : "Sources/Discovery/WiFiBeacon",
      "product_dependencies" : [
        "NIOUDPTransport"
      ],
      "product_memberships" : [
        "P2PDiscoveryWiFiBeacon"
      ],
      "sources" : [
        "WiFiBeaconAdapter.swift",
        "WiFiBeaconConfiguration.swift",
        "WiFiBeaconError.swift",
        "WiFiBeaconFrame.swift"
      ],
      "target_dependencies" : [
        "P2PDiscoveryBeacon",
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryTests",
      "path" : "Tests/Discovery/P2PDiscoveryTests",
      "sources" : [
        "AddressBookTests.swift",
        "BookBoundsTests.swift",
        "CertifiedAddressBookTests.swift",
        "DiscoveryTests.swift",
        "FilePeerStoreTests.swift",
        "KeyBookTests.swift",
        "MDNSDiscoveryIntegrationTests.swift",
        "MetadataBookTests.swift",
        "PeerIDServiceCodecTests.swift",
        "PeerStoreGCTests.swift",
        "ProtoBookTests.swift",
        "SWIMBridgeTests.swift",
        "SWIMMembershipIntegrationTests.swift",
        "SWIMMembershipTests.swift"
      ],
      "target_dependencies" : [
        "P2PTestSupport",
        "P2PDiscovery",
        "P2PDiscoverySWIM",
        "P2PDiscoveryMDNS"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDiscoverySWIM",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoverySWIM",
      "path" : "Sources/Discovery/SWIM",
      "product_dependencies" : [
        "SWIM",
        "SWIMWire",
        "NIOUDPTransport",
        "Logging"
      ],
      "product_memberships" : [
        "P2PDiscoverySWIM",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "SWIMBridge.swift",
        "SWIMMembership.swift",
        "SWIMTransportAdapter.swift"
      ],
      "target_dependencies" : [
        "P2PDiscovery",
        "P2PCore",
        "P2PProtocols"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryPlumtreeTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryPlumtreeTests",
      "path" : "Tests/Discovery/PlumtreeDiscoveryTests",
      "sources" : [
        "PlumtreeDiscoveryTests.swift"
      ],
      "target_dependencies" : [
        "P2PDiscoveryPlumtree",
        "P2PCore",
        "P2PPlumtree",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDiscoveryPlumtree",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryPlumtree",
      "path" : "Sources/Discovery/Plumtree",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "P2PDiscoveryPlumtree",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "PlumtreeDiscovery.swift",
        "PlumtreeDiscoveryAnnouncement.swift",
        "PlumtreeDiscoveryConfiguration.swift",
        "PlumtreeDiscoveryError.swift"
      ],
      "target_dependencies" : [
        "P2PDiscovery",
        "P2PCore",
        "P2PMux",
        "P2PProtocols",
        "P2PPlumtree"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryMDNS",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryMDNS",
      "path" : "Sources/Discovery/MDNS",
      "product_dependencies" : [
        "MDNS",
        "NetworkingCore",
        "Logging"
      ],
      "product_memberships" : [
        "P2PDiscoveryMDNS",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "MDNSConfiguration.swift",
        "MDNSDiscovery.swift",
        "PeerIDServiceCodec.swift"
      ],
      "target_dependencies" : [
        "P2PDiscovery",
        "P2PCore",
        "P2PProtocols"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryCYCLONTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryCYCLONTests",
      "path" : "Tests/Discovery/CYCLONTests",
      "sources" : [
        "CYCLONDiscoveryTests.swift",
        "CYCLONEclipseTests.swift",
        "CYCLONPartialViewTests.swift",
        "CYCLONProtobufTests.swift"
      ],
      "target_dependencies" : [
        "P2PDiscoveryCYCLON",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDiscoveryCYCLON",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryCYCLON",
      "path" : "Sources/Discovery/CYCLON",
      "product_memberships" : [
        "P2PDiscoveryCYCLON",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "CYCLONConfiguration.swift",
        "CYCLONDiscovery.swift",
        "CYCLONEntry.swift",
        "CYCLONError.swift",
        "CYCLONMessage.swift",
        "CYCLONPartialView.swift",
        "CYCLONProtobuf.swift"
      ],
      "target_dependencies" : [
        "P2PDiscovery",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscoveryBeaconTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryBeaconTests",
      "path" : "Tests/Discovery/BeaconTests",
      "sources" : [
        "AggregationIngestTests.swift",
        "BLEDiscoverySchedulerTests.swift",
        "BayesianPresenceTests.swift",
        "BeaconAddressCodecTests.swift",
        "BeaconBoundsTests.swift",
        "BeaconDiscoveryConfigurationTests.swift",
        "BeaconDiscoveryTests.swift",
        "BeaconEncoderServiceTests.swift",
        "BeaconFilterTests.swift",
        "BeaconObservationTests.swift",
        "BeaconPeerRecordTests.swift",
        "BeaconPeerStoreTests.swift",
        "BeaconTierTests.swift",
        "ConfirmedPeerRecordTests.swift",
        "DataHelpersTests.swift",
        "DecodedBeaconTests.swift",
        "EphIDGeneratorTests.swift",
        "FreshnessTests.swift",
        "MediumTests.swift",
        "MicroPoWTests.swift",
        "MicroTESLATests.swift",
        "OpaqueAddressTests.swift",
        "PhysicalFingerprintTests.swift",
        "RSSISmootherTests.swift",
        "ScanCoordinatorTests.swift",
        "TestHelpers.swift",
        "Tier1BeaconTests.swift",
        "Tier2BeaconTests.swift",
        "Tier3BeaconTests.swift",
        "TrickleTimerTests.swift",
        "TrustCalculatorTests.swift",
        "UnconfirmedSightingTests.swift"
      ],
      "target_dependencies" : [
        "P2PDiscoveryBeacon",
        "P2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDiscoveryBeacon",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscoveryBeacon",
      "path" : "Sources/Discovery/Beacon",
      "product_dependencies" : [
        "Crypto"
      ],
      "product_memberships" : [
        "P2PDiscoveryBeacon",
        "P2PDiscoveryWiFiBeacon",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AggregationIngest.swift",
        "BLEDiscoveryScheduler.swift",
        "BayesianPresence.swift",
        "BeaconAddressCodec.swift",
        "BeaconDiscovery.swift",
        "BeaconDiscoveryConfiguration.swift",
        "BeaconEncoderService.swift",
        "BeaconFilter.swift",
        "BeaconObservation.swift",
        "BeaconPeerRecord.swift",
        "BeaconPeerStore.swift",
        "BeaconTier.swift",
        "ConfirmedPeerRecord.swift",
        "DataHelpers.swift",
        "DecodedBeacon.swift",
        "EphIDGenerator.swift",
        "FreshnessFunction.swift",
        "InMemoryBeaconPeerStore.swift",
        "MediumCharacteristics.swift",
        "MicroPoW.swift",
        "MicroTESLA.swift",
        "OpaqueAddress.swift",
        "PhysicalFingerprint.swift",
        "RSSISmoother.swift",
        "RawDiscovery.swift",
        "ScanCoordinator.swift",
        "Tier1Beacon.swift",
        "Tier2Beacon.swift",
        "Tier3Beacon.swift",
        "TransportAdapter.swift",
        "TransportAdapterErrors.swift",
        "TrickleTimer.swift",
        "TrustCalculator.swift",
        "UnconfirmedSighting.swift"
      ],
      "target_dependencies" : [
        "P2PDiscovery",
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDiscovery",
      "module_type" : "SwiftTarget",
      "name" : "P2PDiscovery",
      "path" : "Sources/Discovery/P2PDiscovery",
      "product_memberships" : [
        "P2PWebRTC",
        "P2PDiscovery",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PDiscoveryBeacon",
        "P2PDiscoveryWiFiBeacon",
        "P2PProtocols",
        "P2PIdentify",
        "P2PPing",
        "P2PGossipSub",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PAutoNAT",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PRendezvous",
        "P2PHTTP",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AddressBook.swift",
        "Bootstrap.swift",
        "CertifiedAddressBook.swift",
        "DiscoveryPipeline.swift",
        "FilePeerStore.swift",
        "KeyBook.swift",
        "MemoryKeyBook.swift",
        "MemoryMetadataBook.swift",
        "MemoryProtoBook.swift",
        "MetadataBook.swift",
        "P2PDiscovery.swift",
        "PeerStore.swift",
        "ProtoBook.swift"
      ],
      "target_dependencies" : [
        "P2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PDCUtRTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PDCUtRTests",
      "path" : "Tests/Protocols/DCUtRTests",
      "sources" : [
        "DCUtRIntegrationTests.swift",
        "DCUtRProtobufTests.swift",
        "DCUtRServiceTests.swift",
        "HolePunchServiceTests.swift"
      ],
      "target_dependencies" : [
        "P2PDCUtR",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PDCUtR",
      "module_type" : "SwiftTarget",
      "name" : "P2PDCUtR",
      "path" : "Sources/Protocols/DCUtR",
      "product_memberships" : [
        "P2PDCUtR",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AddressFiltering.swift",
        "DCUtRError.swift",
        "DCUtREvent.swift",
        "DCUtRMessages.swift",
        "DCUtRProtobuf.swift",
        "DCUtRProtocol.swift",
        "DCUtRService.swift",
        "HolePunchService.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PCoreTests",
      "path" : "Tests/Core/P2PCoreTests",
      "sources" : [
        "BandwidthReporterTests.swift",
        "CodecCapTests.swift",
        "CollectionPartialSortTests.swift",
        "DNSResolverTests.swift",
        "EnvelopeTests.swift",
        "EventBroadcasterTests.swift",
        "EventBusTests.swift",
        "EventChannelTests.swift",
        "LRUOrderTests.swift",
        "MetricsExporterTests.swift",
        "MultiaddrClassificationTests.swift",
        "MultiaddrTests.swift",
        "MultihashTests.swift",
        "PeerIDTests.swift",
        "PeerRecordTests.swift",
        "ProtobufLiteTests.swift",
        "WebRTCSignalingMessageTests.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "LibP2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PCore",
      "module_type" : "SwiftTarget",
      "name" : "P2PCore",
      "path" : "Sources/Core/P2PCore",
      "product_dependencies" : [
        "NetworkingFoundationCompat",
        "Crypto",
        "Logging",
        "NIOCore",
        "NIOFoundationCompat"
      ],
      "product_memberships" : [
        "P2PCore",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PTransportTCP",
        "P2PTransportQUIC",
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PTransportWebSocket",
        "P2PTransportMemory",
        "P2PSecurity",
        "P2PCertificate",
        "P2PSecurityNoise",
        "P2PSecurityPlaintext",
        "P2PSecurityTLS",
        "P2PPnet",
        "P2PMux",
        "P2PMuxYamux",
        "P2PMuxMplex",
        "P2PNegotiation",
        "P2PDiscovery",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PDiscoveryBeacon",
        "P2PDiscoveryWiFiBeacon",
        "P2PNAT",
        "P2PProtocols",
        "P2PIdentify",
        "P2PPing",
        "P2PGossipSub",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PAutoNAT",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PRendezvous",
        "P2PHTTP",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "Addressing/DNSResolver.swift",
        "Addressing/Multiaddr.swift",
        "Addressing/MultiaddrProtocol.swift",
        "Addressing/SystemDNSResolver.swift",
        "Compat/Base58DataCompat.swift",
        "Compat/ByteArrayDataCompat.swift",
        "Compat/HexEncodingDataCompat.swift",
        "Compat/MultihashDataCompat.swift",
        "Compat/ProtobufLiteDataCompat.swift",
        "Compat/VarintDataCompat.swift",
        "Connection/ByteConnection.swift",
        "Connection/RawConnection.swift",
        "Connection/SecuredConnection.swift",
        "Events/EventBus.swift",
        "Identity/KeyPair.swift",
        "Identity/KeyType.swift",
        "Identity/PeerID.swift",
        "Identity/PrivateKey.swift",
        "Identity/PublicKey.swift",
        "Lifecycle/EventBroadcaster.swift",
        "Lifecycle/EventChannel.swift",
        "Lifecycle/EventDeliveryPolicy.swift",
        "Lifecycle/EventDeliveryStatistics.swift",
        "Lifecycle/EventEmitting.swift",
        "Metrics/BandwidthReporter.swift",
        "Metrics/MetricsExporter.swift",
        "Metrics/PrometheusExporter.swift",
        "P2PCore.swift",
        "Record/Envelope.swift",
        "Record/PeerRecord.swift",
        "Record/SignedRecord.swift",
        "Utilities/CollectionPartialSort.swift",
        "Utilities/LRUOrder.swift",
        "Utilities/LengthPrefixedFraming.swift"
      ],
      "target_dependencies" : [
        "LibP2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PCircuitRelayTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PCircuitRelayTests",
      "path" : "Tests/Protocols/CircuitRelayTests",
      "sources" : [
        "AutoRelayTests.swift",
        "CircuitRelayE2ETests.swift",
        "CircuitRelayIntegrationTests.swift",
        "CircuitRelayProtobufTests.swift",
        "RelayClientShutdownTests.swift",
        "RelayServerTests.swift",
        "RelayTransportTests.swift"
      ],
      "target_dependencies" : [
        "P2PCircuitRelay",
        "P2PTransportMemory"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PCircuitRelay",
      "module_type" : "SwiftTarget",
      "name" : "P2PCircuitRelay",
      "path" : "Sources/Protocols/CircuitRelay",
      "product_memberships" : [
        "P2PCircuitRelay",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AutoRelay.swift",
        "CircuitRelayError.swift",
        "CircuitRelayEvent.swift",
        "CircuitRelayMessages.swift",
        "CircuitRelayProtobuf.swift",
        "CircuitRelayProtocol.swift",
        "Limit.swift",
        "RelayClient.swift",
        "RelayServer.swift",
        "RelayedConnection.swift",
        "Reservation.swift",
        "ReservationVoucher.swift",
        "Transport/RelayListener.swift",
        "Transport/RelayTransport.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux",
        "P2PTransport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PCertificateTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PCertificateTests",
      "path" : "Tests/Security/CertificateTests",
      "product_dependencies" : [
        "NetworkingCore",
        "SSLX509",
        "Crypto"
      ],
      "sources" : [
        "LibP2PCertificateDERTests.swift",
        "LibP2PCertificateTests.swift"
      ],
      "target_dependencies" : [
        "P2PCertificate",
        "P2PCore",
        "LibP2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PCertificate",
      "module_type" : "SwiftTarget",
      "name" : "P2PCertificate",
      "path" : "Sources/Security/Certificate",
      "product_dependencies" : [
        "NetworkingCore",
        "SSLX509",
        "Crypto"
      ],
      "product_memberships" : [
        "P2PCertificate",
        "P2PSecurityTLS"
      ],
      "sources" : [
        "LibP2PCertificate.swift",
        "LibP2PCertificateError.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "LibP2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2PAutoNATTests",
      "module_type" : "SwiftTarget",
      "name" : "P2PAutoNATTests",
      "path" : "Tests/Protocols/AutoNATTests",
      "sources" : [
        "AutoNATIntegrationTests.swift",
        "AutoNATProtobufTests.swift",
        "AutoNATServiceTests.swift",
        "AutoNATv2Tests.swift",
        "NATStatusTests.swift"
      ],
      "target_dependencies" : [
        "P2PAutoNAT",
        "P2PCore",
        "P2PMux",
        "P2PProtocols"
      ],
      "type" : "test"
    },
    {
      "c99name" : "P2PAutoNAT",
      "module_type" : "SwiftTarget",
      "name" : "P2PAutoNAT",
      "path" : "Sources/Protocols/AutoNAT",
      "product_memberships" : [
        "P2PAutoNAT",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AutoNATError.swift",
        "AutoNATEvent.swift",
        "AutoNATMessages.swift",
        "AutoNATProtobuf.swift",
        "AutoNATProtocol.swift",
        "AutoNATService.swift",
        "AutoNATv2Error.swift",
        "AutoNATv2Messages.swift",
        "AutoNATv2Service.swift",
        "IPAddressClassifier.swift",
        "NATStatus.swift"
      ],
      "target_dependencies" : [
        "P2PProtocols",
        "P2PCore",
        "P2PMux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "P2P",
      "module_type" : "SwiftTarget",
      "name" : "P2P",
      "path" : "Sources/Integration/P2P",
      "product_memberships" : [
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "Connection/ConnectionEvent.swift",
        "Connection/ConnectionID.swift",
        "Connection/ConnectionPool.swift",
        "Connection/ConnectionState.swift",
        "Connection/ConnectionTrimReport.swift",
        "Connection/ConnectionTrimmedContext.swift",
        "Connection/DialBackoff.swift",
        "Connection/HealthMonitor.swift",
        "Dial/DefaultDialRanker.swift",
        "Dial/DialRanker.swift",
        "Dial/SmartDialer.swift",
        "Metrics/BandwidthTrackedStream.swift",
        "Network/BlackHoleDetector.swift",
        "Network/ObservedAddressManager.swift",
        "Network/PnetConnectionProtector.swift",
        "NodeCompositionError.swift",
        "NodeConnectionProvider.swift",
        "NodeDiscoveryController.swift",
        "NodeGroupBuilder.swift",
        "NodePingProvider.swift",
        "NodePrimitiveComponents.swift",
        "NodeRuntime.swift",
        "P2P.swift",
        "PrivateWebRTC.swift",
        "Relay/AutoRelayService.swift",
        "Relay/AutoRelayServiceConfiguration.swift",
        "Relay/AutoRelayServiceError.swift",
        "Relay/AutoRelayServiceEvent.swift",
        "Relay/RelayCandidateInfo.swift",
        "Relay/RelayCandidateScore.swift",
        "Relay/RelaySelector.swift",
        "Relay/RelaySelectorConfiguration.swift",
        "Relay/SupernodeService.swift",
        "Relay/SupernodeServiceConfiguration.swift",
        "Relay/SupernodeServiceEvent.swift",
        "Resource/ConnectionResourceAccounting.swift",
        "Resource/DefaultResourceManager.swift",
        "Resource/NullResourceManager.swift",
        "Resource/ResourceError.swift",
        "Resource/ResourceLimitsConfiguration.swift",
        "Resource/ResourceManager.swift",
        "Resource/ResourceScope.swift",
        "Resource/ResourceSnapshot.swift",
        "Resource/ResourceStat.swift",
        "Resource/ResourceTrackedStream.swift",
        "Resource/ScopeLimits.swift",
        "Resource/StreamResourceAccounting.swift",
        "Swarm/BufferedMuxedStream.swift",
        "Swarm/BufferedStreamReader.swift",
        "Swarm/ConnectionConflictResolver.swift",
        "Swarm/ProtocolHandlerSnapshot.swift",
        "Swarm/ReconnectPlanner.swift",
        "Swarm/StreamLifecycleCoordinator.swift",
        "Swarm/Swarm.swift",
        "Swarm/SwarmConfiguration.swift",
        "Swarm/SwarmEvent.swift",
        "Traversal/Mechanisms/DirectMechanism.swift",
        "Traversal/Mechanisms/HolePunchMechanism.swift",
        "Traversal/Mechanisms/LocalDirectMechanism.swift",
        "Traversal/Mechanisms/RelayMechanism.swift",
        "Traversal/Policies/DefaultTraversalPolicy.swift",
        "Traversal/TraversalCandidate.swift",
        "Traversal/TraversalConfiguration.swift",
        "Traversal/TraversalContext.swift",
        "Traversal/TraversalCoordinator.swift",
        "Traversal/TraversalError.swift",
        "Traversal/TraversalEvent.swift",
        "Traversal/TraversalHintProvider.swift",
        "Traversal/TraversalMechanism.swift",
        "Traversal/TraversalPolicy.swift"
      ],
      "target_dependencies" : [
        "P2PCore",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PSecurity",
        "P2PMux",
        "P2PNegotiation",
        "P2PDiscovery",
        "P2PProtocols",
        "P2PRuntime",
        "P2PWebRTC",
        "P2PTransportWebRTC",
        "P2PTransportTCP",
        "P2PSecurityNoise",
        "P2PSecurityPlaintext",
        "P2PMuxYamux",
        "P2PPing",
        "P2PGossipSub",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PIdentify",
        "P2PAutoNAT",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PNAT",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PDiscoveryBeacon",
        "P2PPnet"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LibP2PNodeTests",
      "module_type" : "SwiftTarget",
      "name" : "LibP2PNodeTests",
      "path" : "Tests/LibP2PNodeTests",
      "product_dependencies" : [
        "NetworkingCore",
        "NetworkingDatagram",
        "NetworkingTime",
        "SSLCryptoContracts",
        "SSLCrypto",
        "SSLASN1",
        "Crypto",
        "QUIC",
        "QUICConnectionEngineCore",
        "QUICConnectionCore",
        "QUICWire"
      ],
      "sources" : [
        "DataPathLoopbackTests.swift",
        "MultiDialerTests.swift",
        "MutualAuthTests.swift",
        "NodeFacadeCapstoneTests.swift",
        "PingIdentifyLiveTests.swift",
        "PipeConnection.swift",
        "QUICConnectionParametersTests.swift",
        "QUICLiveLoopbackTests.swift",
        "RPKCertEncodingTests.swift",
        "TestClock.swift",
        "TestLoopbackDatagramTransport.swift",
        "TestQUICRuntime.swift",
        "YamuxFrameTests.swift"
      ],
      "target_dependencies" : [
        "LibP2PNode",
        "LibP2PCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LibP2PNode",
      "module_type" : "SwiftTarget",
      "name" : "LibP2PNode",
      "path" : "Sources/LibP2PNode",
      "product_dependencies" : [
        "NetworkingCore",
        "NetworkingDatagram",
        "NetworkingTime",
        "TLSTypes",
        "SSLCryptoContracts",
        "SSLCrypto",
        "QUIC",
        "QUICTLS",
        "SSLCore",
        "SSLASN1",
        "SSLX509",
        "QUICConnectionEngineCore",
        "QUICConnectionCore",
        "QUICWire"
      ],
      "product_memberships" : [
        "LibP2PNode",
        "P2PTransportQUIC"
      ],
      "sources" : [
        "BufferedMuxedStream.swift",
        "ConnectionManager.swift",
        "DemuxRoutedTransport.swift",
        "IdentifyService.swift",
        "LibP2PRPKCertificate.swift",
        "LogShim.swift",
        "MultistreamNegotiator.swift",
        "MuxedStream.swift",
        "MuxedStreamConnection.swift",
        "Node.swift",
        "NodeDialResult.swift",
        "NodeError.swift",
        "NodeIdentity.swift",
        "NodeProtocolID.swift",
        "NoiseIdentityVerification.swift",
        "NoiseSecuredConnection.swift",
        "NoiseUpgrader.swift",
        "OwnedBytesMaterialization.swift",
        "PendingStreamBuffer.swift",
        "PingResult.swift",
        "PingService.swift",
        "ProtocolRouteSnapshot.swift",
        "ProtocolRouter.swift",
        "QUICConnectionParameters.swift",
        "QUICStream.swift",
        "QUICTLSHandshakeDriver.swift",
        "QUICTransport.swift",
        "RawConnection.swift",
        "ServerDemultiplexer.swift",
        "StreamNegotiation.swift",
        "YamuxFrame.swift",
        "YamuxMuxer.swift",
        "YamuxStream.swift"
      ],
      "target_dependencies" : [
        "LibP2PCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LibP2PCore",
      "module_type" : "SwiftTarget",
      "name" : "LibP2PCore",
      "path" : "Sources/LibP2PCore",
      "product_dependencies" : [
        "NetworkingCore",
        "SSLCryptoContracts",
        "SSLCore",
        "SSLASN1"
      ],
      "product_memberships" : [
        "LibP2PCore",
        "P2PCore",
        "LibP2PNode",
        "P2PTransport",
        "P2PSessionTransport",
        "P2PTransportTCP",
        "P2PTransportQUIC",
        "P2PTransportWebRTC",
        "P2PWebRTC",
        "P2PTransportWebSocket",
        "P2PTransportMemory",
        "P2PSecurity",
        "P2PCertificate",
        "P2PSecurityNoise",
        "P2PSecurityPlaintext",
        "P2PSecurityTLS",
        "P2PPnet",
        "P2PMux",
        "P2PMuxYamux",
        "P2PMuxMplex",
        "P2PNegotiation",
        "P2PDiscovery",
        "P2PDiscoveryMDNS",
        "P2PDiscoverySWIM",
        "P2PDiscoveryCYCLON",
        "P2PDiscoveryPlumtree",
        "P2PDiscoveryBeacon",
        "P2PDiscoveryWiFiBeacon",
        "P2PNAT",
        "P2PProtocols",
        "P2PIdentify",
        "P2PPing",
        "P2PGossipSub",
        "P2PCircuitRelay",
        "P2PDCUtR",
        "P2PAutoNAT",
        "P2PKademlia",
        "P2PPlumtree",
        "P2PRendezvous",
        "P2PHTTP",
        "P2PRuntime",
        "P2P",
        "PingPongDemo"
      ],
      "sources" : [
        "AutoNATCodec.swift",
        "AutoNATv2Codec.swift",
        "Base58.swift",
        "CircuitRelayCodec.swift",
        "DCUtRCodec.swift",
        "GossipSubCodec.swift",
        "HexEncoding.swift",
        "IPAddress.swift",
        "IPv6Compression.swift",
        "IdentifyCodec.swift",
        "KademliaCodec.swift",
        "LibP2PCertificateDER.swift",
        "LibP2PIdentity.swift",
        "LibP2PSignedKeyDER.swift",
        "MultiaddrCodec.swift",
        "Multihash.swift",
        "MultistreamCodec.swift",
        "NoiseCipherStateCore.swift",
        "NoiseCryptoError.swift",
        "NoiseFraming.swift",
        "NoiseHandshakeCore.swift",
        "NoiseKeyAgreementCore.swift",
        "NoisePayloadCodec.swift",
        "NoiseSymmetricStateCore.swift",
        "PeerIDFraming.swift",
        "PingCodec.swift",
        "PlumtreeCodec.swift",
        "ProtobufLite.swift",
        "PublicKeyProtobuf.swift",
        "UTF8Strict.swift",
        "Varint.swift",
        "WebRTCSignalingMessage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.4"
}
Done.