The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-libp2p, reference 0.5.0 (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: 0.5.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/1amageek/swift-libp2p
 * tag               0.5.0      -> FETCH_HEAD
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 0.5.0
========================================
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 2181 / 4408]
[Planning 3278 / 4408]
[Planning 4304 / 4408]
[Planning deferred tasks]
[Constructing 40 / 9293]
[Constructing 4310 / 9293]
[Starting]
[57 / 1534] SpanPreview
[313 / 1534] P2PPing
[568 / 1534] NIO
[680 / 1534] swift-nio_NIOPosix
[682 / 1534]
[695 / 1546] SWIMWire
[702 / 1565] InternalCollectionsUtilities
[706 / 1592]
[715 / 1647] InternalCollectionsUtilities
[725 / 1707]
[758 / 1707] _NIOBase64
[778 / 1707] CNIOLinux
[798 / 1707]
[811 / 1707]
[828 / 1707] _AtomicsShims
[835 / 1707]
[846 / 1707] SWIMWire-product
[849 / 1707] SWIMWire
[853 / 1707] SWIM
[861 / 1707] SSLCryptoContracts
[869 / 1707] P2PTestSupport
[876 / 1707] NetworkingWASI
[889 / 1707] _NIODataStructures
[914 / 1707] NetworkingTime
[922 / 1707] Logging
[929 / 1707] Logging
[937 / 1707] Logging
[944 / 1707] InternalCollectionsUtilities
[948 / 1707] Logging
[959 / 1707] CNIOFreeBSD
[969 / 1709]
[975 / 1722] DNSWire
[986 / 1722]
[993 / 1722] P2PTestSupport
[1003 / 1726]
[1014 / 1750] SpanPreview
[1028 / 1750] TLSWireCore
[1029 / 1750] TLSWireCore
[1042 / 1779]
[1048 / 1779] TLSTypes-product
[1055 / 1779] SpanPreview
[1071 / 1785] NetworkingFoundationCompat
[1080 / 1822] DTLSRecordCore
[1092 / 1838] SSLCore
[1114 / 1838] SSLCore-product
[1128 / 1849]
[1134 / 1849]
[1140 / 1849] QUICWire
[1144 / 1849] QUICWire
[1149 / 1849] NetworkingWASI-product
[1152 / 1849] NetworkingPOSIX
[1158 / 1849]
[1164 / 1849] DequeModule
[1168 / 1849] QUICWire
[1178 / 1849] DequeModule
[1181 / 1849] SWIM
[1183 / 1849] SWIM
[1198 / 1849] SWIM
[1203 / 1849] NetworkingFoundationCompat
[1206 / 1849] DequeModule-product
[1208 / 1849] NIOCore
[1212 / 1850] SSLCore
[1219 / 1862] SSLASN1
[1221 / 1873] SSLASN1
[1223 / 1873] SSLASN1
[1244 / 1873] SWIM
[1250 / 1873] DTLSWireCore
[1255 / 1873] DTLSWireCore
[1261 / 1876]
[1269 / 1889] QUICStreamCore
[1274 / 1911] NetworkingPOSIX
[1285 / 1934]
[1300 / 1946] QUICStreamCore
[1310 / 1946] QUICStreamCore
[1315 / 1946] NetworkingPOSIX-product
[1329 / 1946] NIOCore
[1333 / 1946] NIOCore
[1335 / 1946] NIOCore
[1337 / 1946] CNIOAtomics
[1339 / 1946] SSLCrypto
[1341 / 1946] SSLCrypto
[1342 / 1946] SSLCrypto
[1345 / 1946] SSLCrypto
[1347 / 1946] SSLCrypto
[1353 / 1946] SSLX509
[1355 / 1946] SSLX509
[1356 / 1946] SSLCrypto-product
[1358 / 1946] MDNS
[1361 / 1946] LibP2PCore
[1363 / 1946] LibP2PCore-product
[1368 / 1946] NIOCore
[1377 / 1947]
[1379 / 1948]
[1386 / 1969] QUICPacketProtectionCore
[1390 / 1974] DTLSHandshakeCore
[1405 / 1974] SSLX509
[1407 / 1974] SSLX509
[1418 / 1974] SSLX509-product
[1421 / 1974] QUICPacketProtectionCore
[1427 / 1974] DTLSHandshakeCore
[1431 / 1977] NIOPosix
[1436 / 1980] MDNS
[1439 / 1982] Crypto
[1441 / 1993] SSLDTLSMechanism
[1444 / 2008] QUICConnectionCore
[1453 / 2022] SSLDTLSMechanism
[1466 / 2049] MDNS
[1479 / 2060] NIOFoundationEssentialsCompat
[1494 / 2060] SSLTLS
[1496 / 2060] SSLTLS
[1498 / 2060] SSLTLS
[1510 / 2060] SSLDTLSMechanism
[1512 / 2060] NIOPosix
[1521 / 2060] SSLDTLS
[1526 / 2060] QUICConnectionCore
[1533 / 2060] NIOPosix
[1535 / 2060] NIOPosix
[1538 / 2060] NIOPosix
[1540 / 2060] NIOPosix-product
[1541 / 2060] NIOPosix-product
[1543 / 2060] NIOUDPTransport
[1548 / 2060] NIOEmbedded
[1548 / 2060] NIO
[1554 / 2060] MDNS-product
[1558 / 2060] MDNS
[1563 / 2060] Crypto
[1566 / 2060] NIOPosix
[1570 / 2060] MDNS
[1572 / 2060] Crypto
[1574 / 2062] SSLDTLS
[1575 / 2073] SSLQUIC
[1578 / 2078] SSLQUIC
[1594 / 2078] SSLQUIC-product
[1599 / 2078] SSLDTLS
[1603 / 2078] QUICPacketProtectionCore
[1609 / 2081] CNIOAtomics
[1612 / 2082]
[1621 / 2099] TLS
[1625 / 2110] QUICTLS
[1637 / 2117] QUICConnectionEngineCore
[1650 / 2119] TLS-product
[1662 / 2119] QUICTLS-product
[1671 / 2119] QUICConnectionEngineCore
[1675 / 2119] QUICConnectionEngineCore-product
[1681 / 2119] NIOUDPTransport
[1683 / 2119] NIOUDPTransport-product
[1688 / 2120]
[1695 / 2122] DTLSHandshake-product
[1701 / 2123] NIOEmbedded
[1709 / 2134] QUIC
[1715 / 2146] NIOHTTP1
[1729 / 2161] WebRTC
[1735 / 2161] WebRTC
[1736 / 2161] NIOFoundationCompat
[1752 / 2161] WebRTC
[1752 / 2161] QUIC-product
[1760 / 2161] NIOHTTP1
[1761 / 2161] NIOWebSocket
[1763 / 2161] NIOWebSocket
[1767 / 2161] NIOHTTP1
[1769 / 2161] NIOFoundationCompat-product
[1774 / 2164]
[1774 / 2164] NIOFoundationCompat
[1776 / 2164] LibP2PNode
[1782 / 2187]
[1787 / 2198] NIOWebSocket
[1789 / 2198] LibP2PNode
[1794 / 2198] LibP2PNode
[1802 / 2198] P2PCore
[1813 / 2198] P2PTransport
[1817 / 2198] NIOWebSocket
[1825 / 2198] NIOWebSocket
[1831 / 2198] LibP2PNode
[1832 / 2198]
[1838 / 2202]
[1840 / 2204] NIOHTTP1
[1841 / 2205] P2PCore
[1845 / 2212] P2PTransport
[1848 / 2222] P2PPnet
[1862 / 2240] P2PSecurity
[1878 / 2251] P2PCertificate
[1893 / 2254] P2PMux
[1902 / 2254] P2PNegotiation-product
[1914 / 2254] P2PNAT
[1925 / 2254] P2PNAT
[1929 / 2254] P2PNAT
[1932 / 2254] P2PProtocols
[1938 / 2254] P2PNAT
[1943 / 2254] P2PCertificate-product
[1948 / 2256]
[1952 / 2257] P2PTransport
[1957 / 2265] P2PSecurityNoise
[1958 / 2265] P2PProtocols
[1961 / 2272] P2PTransportTCP
[1963 / 2280] P2PTransportWebSocket
[1976 / 2294] P2PTransportTCP
[1986 / 2319] P2PMuxMplex
[1996 / 2325] P2PSecurityPlaintext
[2023 / 2325] P2PSecurityNoise
[2031 / 2336] P2PTransportMemory
[2038 / 2336] P2PSecurityTLS
[2052 / 2336] P2PSecurityTLS
[2062 / 2336] P2PDiscoveryBeacon
[2072 / 2336] P2PTransportWebRTC
[2075 / 2336] P2PTransportWebRTC
[2084 / 2336] P2PPnet
[2091 / 2336] P2PMuxYamux
[2096 / 2336] P2PSecurityNoise
[2103 / 2336] P2PMuxYamux
[2103 / 2336] P2PMuxMplex-product
[2108 / 2336] P2PDiscoveryBeacon
[2110 / 2336] P2PDiscoveryBeacon
[2117 / 2337]
[2122 / 2338]
[2127 / 2341] P2PPlumtree
[2131 / 2353] P2PSecurity-product
[2133 / 2353] P2PIdentify
[2136 / 2359] P2PGossipSub
[2137 / 2370] P2PTransportWebRTC
[2148 / 2400] P2PKademlia
[2151 / 2421] P2PIdentify
[2173 / 2432] P2PRuntime
[2181 / 2432] P2PCircuitRelay
[2185 / 2441] P2PHTTP
[2197 / 2441] P2PTransportWebRTC
[2214 / 2453] P2PDiscoveryWiFiBeacon
[2230 / 2473] P2PAutoNAT
[2238 / 2484] P2PDiscoveryMDNS
[2252 / 2484] P2PDCUtR
[2267 / 2484] P2PCircuitRelay
[2274 / 2484] P2PTransportQUIC
[2276 / 2484] P2PTransportQUIC-product
[2282 / 2484] P2PWebRTC
[2287 / 2484] P2PRendezvous
[2291 / 2484] P2PRendezvous
[2296 / 2484] P2PRuntime
[2304 / 2484] P2PRuntime
[2310 / 2484] P2PRendezvous
[2314 / 2484] P2PKademlia-product
[2319 / 2484] P2PPing
[2324 / 2484] P2PHTTP
[2327 / 2484] P2PHTTP-product
[2333 / 2484] P2PGossipSub-product
[2336 / 2484] P2PGossipSub
[2341 / 2484] P2PDiscoveryWiFiBeacon
[2345 / 2484] P2PDiscoverySWIM
[2346 / 2484] P2PDiscoverySWIM
[2350 / 2484] P2PDiscoveryCYCLON
[2353 / 2484] P2PDiscoveryCYCLON
[2358 / 2484] P2PDiscoveryWiFiBeacon
[2363 / 2484] P2PDCUtR
[2373 / 2484] P2PDiscoveryCYCLON
[2379 / 2484] P2PCircuitRelay
[2383 / 2484] P2PAutoNAT
[2387 / 2484] P2PAutoNAT
[2392 / 2484]
[2394 / 2485]
[2406 / 2486]
[2419 / 2486] P2PHTTP
[2432 / 2486] P2PPlumtree-product
[2443 / 2486] P2PWebRTC
[2459 / 2497] P2PDiscoveryPlumtree
[2460 / 2497] P2PWebRTC
[2479 / 2498] P2PWebRTC-product
[2479 / 2498] P2PDiscoveryPlumtree
[2482 / 2498] P2P
[2493 / 2509] P2P
[2502 / 2510] P2P
[2502 / 2510] PingPongDemo-product
[2504 / 2512] PingPongDemo-product
[2505 / 2512] PingPongDemo-product
[2508 / 2512] P2P
[2510 / 2512] PingPongDemo-product
Build complete! (47.43 sec)
Fetching https://github.com/1amageek/swift-webrtc.git
Fetching https://github.com/1amageek/swift-tls.git
Fetching https://github.com/1amageek/swift-ssl.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/1amageek/swift-quic.git
Fetching https://github.com/1amageek/swift-SWIM.git
Fetching https://github.com/1amageek/swift-nio-udp.git
[1/1367] Fetching swift-tls
[2/1492] Fetching swift-tls, swift-nio-udp
[54/9657] Fetching swift-tls, swift-nio-udp, swift-log
[104/11639] Fetching swift-tls, swift-nio-udp, swift-log, swift-quic
[107/12051] Fetching swift-tls, swift-nio-udp, swift-log, swift-quic, swift-swim
[231/13069] Fetching swift-tls, swift-nio-udp, swift-log, swift-quic, swift-swim, swift-webrtc
[609/16508] Fetching swift-tls, swift-nio-udp, swift-log, swift-quic, swift-swim, swift-webrtc, swift-ssl
Fetched https://github.com/1amageek/swift-SWIM.git (1.36s)
[13964/16096] Fetching swift-tls, swift-nio-udp, swift-log, swift-quic, swift-webrtc, swift-ssl
Fetching https://github.com/1amageek/swift-mDNS.git
Fetched https://github.com/1amageek/swift-webrtc.git (1.40s)
Fetched https://github.com/1amageek/swift-tls.git (1.40s)
Fetching https://github.com/apple/swift-nio.git
Fetching https://github.com/1amageek/swift-crypto.git
[12405/13711] Fetching swift-nio-udp, swift-log, swift-quic, swift-ssl
Fetched https://github.com/1amageek/swift-quic.git (1.59s)
Fetched https://github.com/apple/swift-log.git (1.59s)
Fetched https://github.com/1amageek/swift-ssl.git (1.59s)
Fetched https://github.com/1amageek/swift-nio-udp.git (1.59s)
Fetching https://github.com/1amageek/swift-networking.git
[1/12409] Fetching swift-crypto
[2/12757] Fetching swift-crypto, swift-mdns
[722/12857] Fetching swift-crypto, swift-mdns, swift-networking
Fetched https://github.com/1amageek/swift-mDNS.git (0.98s)
[563/12509] Fetching swift-crypto, swift-networking
Fetched https://github.com/1amageek/swift-networking.git (0.86s)
[621/12409] Fetching swift-crypto
[2235/98595] Fetching swift-crypto, swift-nio
Fetched https://github.com/apple/swift-nio.git (9.51s)
Fetched https://github.com/1amageek/swift-crypto.git (9.51s)
Computing version for https://github.com/1amageek/swift-webrtc.git
Computed https://github.com/1amageek/swift-webrtc.git at 3.0.0 (11.59s)
Computing version for https://github.com/1amageek/swift-quic.git
Computed https://github.com/1amageek/swift-quic.git at 2.0.2 (0.57s)
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.55s)
Computing version for https://github.com/1amageek/swift-SWIM.git
Computed https://github.com/1amageek/swift-SWIM.git at 2.0.0 (0.56s)
Computing version for https://github.com/1amageek/swift-mDNS.git
Computed https://github.com/1amageek/swift-mDNS.git at 2.0.0 (0.56s)
Computing version for https://github.com/1amageek/swift-crypto.git
Computed https://github.com/1amageek/swift-crypto.git at 4.5.4 (2.79s)
Computing version for https://github.com/1amageek/swift-networking.git
Computed https://github.com/1amageek/swift-networking.git at 0.1.0 (0.53s)
Computing version for https://github.com/1amageek/swift-tls.git
Computed https://github.com/1amageek/swift-tls.git at 2.1.0 (0.56s)
Computing version for https://github.com/1amageek/swift-ssl.git
Computed https://github.com/1amageek/swift-ssl.git at 0.4.0 (0.76s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.60s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.103.0 (0.68s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
Fetching https://github.com/apple/swift-atomics.git
[1/1885] Fetching swift-atomics
[133/8868] Fetching swift-atomics, swift-system
[2197/36647] Fetching swift-atomics, swift-system, swift-collections
Fetched https://github.com/apple/swift-collections.git (2.59s)
Fetched https://github.com/apple/swift-system.git (2.59s)
Fetched https://github.com/apple/swift-atomics.git (2.59s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (3.20s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (0.64s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.57s)
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/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.1
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-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-tls.git
Working copy of https://github.com/1amageek/swift-tls.git resolved at 2.1.0
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/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-networking.git
Working copy of https://github.com/1amageek/swift-networking.git resolved at 0.1.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/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-SWIM.git
Working copy of https://github.com/1amageek/swift-SWIM.git resolved at 2.0.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/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-quic.git
Working copy of https://github.com/1amageek/swift-quic.git resolved at 2.0.2
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.