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 Linux on 27 Sep 2026 21:45:04 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

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 /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
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:         linux
Swift version:             6.4
Building package at path:  $PWD
https://github.com/1amageek/swift-libp2p.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:c77fcce225e223ac0fafed844619173fc6de8d62dd560eeb28db3182af6a282b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/1amageek/swift-SWIM.git
Fetching https://github.com/1amageek/swift-webrtc.git
Fetching https://github.com/1amageek/swift-nio-udp.git
Fetching https://github.com/1amageek/swift-ssl.git
Fetching https://github.com/1amageek/swift-tls.git
Fetching https://github.com/1amageek/swift-quic.git
[1/1367] Fetching swift-tls
[357/1779] Fetching swift-tls, swift-swim
[1031/3761] Fetching swift-tls, swift-swim, swift-quic
[1100/3886] Fetching swift-tls, swift-swim, swift-quic, swift-nio-udp
[3808/4904] Fetching swift-tls, swift-swim, swift-quic, swift-nio-udp, swift-webrtc
Fetched https://github.com/1amageek/swift-nio-udp.git (0.59s)
Fetched https://github.com/1amageek/swift-tls.git (0.59s)
Fetched https://github.com/1amageek/swift-quic.git (0.59s)
Fetching https://github.com/1amageek/swift-mDNS.git
Fetching https://github.com/1amageek/swift-crypto.git
Fetching https://github.com/apple/swift-log.git
[1247/1430] Fetching swift-swim, swift-webrtc
Fetched https://github.com/1amageek/swift-SWIM.git (0.62s)
Fetched https://github.com/1amageek/swift-webrtc.git (0.62s)
Fetching https://github.com/apple/swift-nio.git
[1/3439] Fetching swift-ssl
Fetching https://github.com/1amageek/swift-networking.git
Fetched https://github.com/1amageek/swift-ssl.git (0.74s)
[1/348] Fetching swift-mdns
[182/8513] Fetching swift-mdns, swift-log
[257/8613] Fetching swift-mdns, swift-log, swift-networking
Fetched https://github.com/1amageek/swift-mDNS.git (0.51s)
[1080/8265] Fetching swift-log, swift-networking
Fetched https://github.com/1amageek/swift-networking.git (0.47s)
[1389/8165] Fetching swift-log
[1879/20574] Fetching swift-log, swift-crypto
Fetched https://github.com/apple/swift-log.git (0.63s)
[1117/12409] Fetching swift-crypto
[7199/98595] Fetching swift-crypto, swift-nio
Fetched https://github.com/1amageek/swift-crypto.git (1.27s)
[30166/86186] Fetching swift-nio
Fetched https://github.com/apple/swift-nio.git (3.18s)
Computing version for https://github.com/1amageek/swift-webrtc.git
Computed https://github.com/1amageek/swift-webrtc.git at 3.0.0 (4.10s)
Computing version for https://github.com/1amageek/swift-quic.git
Computed https://github.com/1amageek/swift-quic.git at 2.0.2 (0.22s)
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.19s)
Computing version for https://github.com/1amageek/swift-SWIM.git
Computed https://github.com/1amageek/swift-SWIM.git at 2.0.0 (0.22s)
Computing version for https://github.com/1amageek/swift-mDNS.git
Computed https://github.com/1amageek/swift-mDNS.git at 2.0.0 (0.20s)
Computing version for https://github.com/1amageek/swift-crypto.git
Computed https://github.com/1amageek/swift-crypto.git at 4.5.4 (1.10s)
Computing version for https://github.com/1amageek/swift-networking.git
Computed https://github.com/1amageek/swift-networking.git at 0.1.0 (0.17s)
Computing version for https://github.com/1amageek/swift-tls.git
Computed https://github.com/1amageek/swift-tls.git at 2.1.0 (0.21s)
Computing version for https://github.com/1amageek/swift-ssl.git
Computed https://github.com/1amageek/swift-ssl.git at 0.4.0 (0.31s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.20s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.103.0 (0.33s)
Fetching https://github.com/apple/swift-system.git
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-collections.git
[1/1885] Fetching swift-atomics
[1886/8868] Fetching swift-atomics, swift-system
Fetched https://github.com/apple/swift-system.git (0.63s)
[1/27779] Fetching swift-collections
Fetched https://github.com/apple/swift-atomics.git (1.32s)
Fetched https://github.com/apple/swift-collections.git (1.33s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (1.53s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (0.31s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.21s)
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-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-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.1
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-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-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-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-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/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/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
Building for debugging...
[Computing dependencies]
[Provisioning 2 / 189]
[Constructing description]
[Pre-planning 1 / 4379]
[Planning 1 / 4379]
[Planning 1672 / 4379]
[Planning 2578 / 4379]
[Planning 3395 / 4379]
[Planning 4247 / 4379]
[Planning deferred tasks]
[Constructing 103 / 9118]
[Constructing 6860 / 9118]
[Starting]
[28 / 1405] WebRTC
[287 / 1405] P2PProtocols
[525 / 1405] NIOFoundationCompat
[677 / 1414] _NIOBase64
[687 / 1474] SSLCryptoContracts
[688 / 1474] P2PTestSupport
[705 / 1474] _NIOBase64
[711 / 1474] Logging
[712 / 1474] NetworkingCore
[723 / 1474] SWIMWire
[726 / 1474] _NIODataStructures
[740 / 1474] SWIMWire
[741 / 1474] SWIMWire-product
[747 / 1475] SWIM
[750 / 1475] SSLCryptoContracts-product
[758 / 1476] SWIMWire
[770 / 1478] NetworkingCore
[775 / 1478] TLSWireCore
[781 / 1479] NetworkingTime
[788 / 1480] _NIODataStructures
[790 / 1480] Logging-product
[795 / 1480] Logging
[802 / 1483] InternalCollectionsUtilities
[808 / 1493] InternalCollectionsUtilities
[817 / 1502] InternalCollectionsUtilities
[818 / 1502] InternalCollectionsUtilities
[819 / 1502] Logging
[820 / 1502] InternalCollectionsUtilities
[822 / 1502] DNSWire
[823 / 1503] Logging
[825 / 1503] Logging
[828 / 1503] DNSWire
[829 / 1503] Logging
[831 / 1503] DNSWire
[832 / 1503] CNIOWindows
[838 / 1513] CNIOWASI
[849 / 1513] SpanPreview
[852 / 1513] InternalCollectionsUtilities
[855 / 1514] DNSWire
[861 / 1514] Atomics
[867 / 1518] SWIM
[873 / 1554] QUICWire
[874 / 1554] CNIOLinux
[876 / 1554] CNIOLLHTTP
[892 / 1555] CNIODarwin
[895 / 1555] QUICWire
[902 / 1555] TLSWireCore
[905 / 1555] TLSWireCore
[906 / 1555] TLSWireCore
[907 / 1555] CNIOAtomics
[908 / 1555] TLSWire-product
[909 / 1555] TLSWire-product
[917 / 1556] TLSTypes-product
[926 / 1556] TLSTypes
[928 / 1556] SWIM
[930 / 1556] SWIM-product
[931 / 1556] SWIM-product
[935 / 1557] TLSWireCore
[938 / 1558] TLSWireCore
[939 / 1558] QUICWire
[943 / 1558] QUICWire-product
[944 / 1558] QUICWire-product
[945 / 1558] QUICWire-product
[951 / 1560] NetworkingWASI
[954 / 1562] NetworkingWASI
[967 / 1583] NetworkingDatagram
[969 / 1583] NetworkingFoundationCompat
[978 / 1583] NetworkingFoundationCompat
[992 / 1584] NetworkingPOSIX
[998 / 1584] DTLSRecordCore
[1002 / 1587] SpanPreview
[1008 / 1595] SSLCore
[1015 / 1621] SpanPreview
[1022 / 1622] SSLCore
[1025 / 1623] SSLCore
[1036 / 1623] SSLCore
[1039 / 1623] QUICStreamCore
[1046 / 1623] SSLASN1
[1050 / 1624] SSLCore
[1056 / 1625] SSLCore
[1062 / 1625] QUICRecoveryCore
[1064 / 1625] QUICRecoveryCore
[1066 / 1625] DequeModule
[1070 / 1626] DTLSRecordCore
[1074 / 1635] DTLSWireCore
[1076 / 1635] DTLSWireCore
[1077 / 1636] QUICStreamCore
[1086 / 1636] DTLSWireCore
[1086 / 1636] DTLSWire-product
[1091 / 1656] SSLASN1
[1093 / 1656] SSLASN1
[1096 / 1657] NetworkingPOSIX
[1106 / 1657] SSLASN1
[1108 / 1658] SSLASN1
[1111 / 1658] NetworkingPOSIX
[1112 / 1658] QUICRecoveryCore
[1114 / 1658] NetworkingPOSIX-product
[1116 / 1658] NetworkingPOSIX-product
[1122 / 1658] SSLASN1
[1128 / 1660] SSLCrypto
[1135 / 1664] DTLSWireCore
[1142 / 1690] MDNS
[1144 / 1708] SSLCrypto
[1145 / 1708] DTLSHandshakeCore
[1146 / 1708] NetworkingPOSIX
[1152 / 1709] SSLCrypto
[1153 / 1709] MDNS
[1164 / 1709] SSLCrypto
[1165 / 1709] SSLCrypto
[1166 / 1709] SSLCrypto
[1169 / 1709] SSLCrypto
[1173 / 1709] NetworkingPOSIX
[1177 / 1709] QUICRecoveryCore
[1178 / 1709] NetworkingPOSIX
[1184 / 1709] MDNS
[1185 / 1709] MDNS-product
[1189 / 1709] MDNS
[1190 / 1709] MDNS
[1191 / 1709] LibP2PCore
[1192 / 1709] LibP2PCore-product
[1195 / 1709] LibP2PCore
[1196 / 1709] LibP2PCore
[1197 / 1709] LibP2PCore
[1198 / 1709] LibP2PCore
[1198 / 1710] LibP2PCore
[1201 / 1710] MDNS
[1202 / 1710] DequeModule
[1203 / 1710] DequeModule-product
[1205 / 1710] NIOCore
[1206 / 1710] NIOCore
[1207 / 1710] DTLSWireCore
[1208 / 1710] DTLSHandshakeCore
[1210 / 1710] SSLDTLSMechanism
[1213 / 1710] DTLSHandshake-product
[1215 / 1712] SSLDTLSMechanism
[1218 / 1730] SSLDTLSMechanism
[1221 / 1732] SSLX509
[1224 / 1733] SSLDTLSMechanism
[1235 / 1733] SSLX509
[1235 / 1733] SSLTLS
[1236 / 1733] SSLTLS
[1238 / 1733] SSLDTLSMechanism
[1240 / 1733] SSLDTLSMechanism
[1242 / 1734] SSLDTLSMechanism
[1243 / 1734] SSLDTLSMechanism
[1250 / 1736] NIOCore
[1256 / 1742] DequeModule
[1257 / 1751] QUICPacketProtectionCore
[1265 / 1751] QUICPacketProtectionCore
[1267 / 1751] QUICConnectionCore
[1269 / 1752] SSLDTLSMechanism
[1275 / 1753] SSLX509
[1277 / 1754] QUICPacketProtectionCore
[1278 / 1754] NIOCore
[1279 / 1754] QUICPacketProtectionCore
[1281 / 1755] SSLCore
[1283 / 1766] SSLTLS
[1284 / 1766] SSLDTLS
[1286 / 1781] SSLDTLS
[1287 / 1781] SSLTLS
[1288 / 1781] SSLDTLS
[1290 / 1781] SSLDTLS
[1296 / 1781] SSLTLS
[1297 / 1781] NIOCore
[1304 / 1781] Crypto
[1308 / 1781] SSLTLS-product
[1309 / 1781] SSLTLS-product
[1310 / 1781] SSLTLS-product
[1311 / 1781] SSLQUIC
[1312 / 1781] SSLDTLS-product
[1313 / 1781] SSLDTLS-product
[1314 / 1781] SSLDTLS-product
[1316 / 1782] NIOCore
[1319 / 1782] Crypto
[1320 / 1782] NIOCore
[1321 / 1782] NIOCore
[1327 / 1782] NIOPosix
[1329 / 1783] SSLDTLS
[1331 / 1783] SSLDTLS
[1333 / 1783] Crypto
[1333 / 1783] QUICStreamCore
[1337 / 1795] SSLQUIC
[1338 / 1803] SSLQUIC
[1352 / 1803] SSLQUIC
[1354 / 1803] SSLQUIC-product
[1356 / 1803] SSLQUIC
[1358 / 1803] QUICTLS
[1359 / 1803] QUICConnectionCore
[1362 / 1803] QUICConnectionCore
[1363 / 1803] QUICConnectionCore
[1364 / 1804] SSLQUIC
[1367 / 1806] QUICTLS
[1372 / 1833] QUICConnectionEngineCore
[1373 / 1833] NIOPosix
[1382 / 1840] NIOEmbedded
[1383 / 1849] NIOPosix
[1391 / 1850] NIOFoundationEssentialsCompat
[1401 / 1850] NIOEmbedded
[1404 / 1850] NIOEmbedded
[1405 / 1850] NIOEmbedded
[1409 / 1850] WebRTC
[1410 / 1850] WebRTC
[1412 / 1851] QUICTLS
[1413 / 1851] QUICTLS
[1413 / 1851] TLS
[1414 / 1851] QUICTLS-product
[1416 / 1851] QUICTLS-product
[1418 / 1852] SSLTLS
[1421 / 1852] QUICTLS
[1424 / 1853] TLS
[1426 / 1853] QUICConnectionEngineCore-product
[1427 / 1853] QUICConnectionEngineCore-product
[1430 / 1853] QUICConnectionCore
[1432 / 1854] TLS
[1435 / 1854] TLS
[1437 / 1854] NIOPosix
[1439 / 1854] NIOPosix
[1441 / 1855] NIOPosix
[1445 / 1855] NIOPosix
[1447 / 1855] QUICConnectionEngineCore
[1448 / 1855] NIOPosix-product
[1449 / 1855] NIOUDPTransport
[1450 / 1856] NIOUDPTransport
[1454 / 1856] NIO
[1456 / 1856] LibP2PCore
[1458 / 1857] WebRTC
[1459 / 1866] NIOEmbedded
[1463 / 1866] WebRTC
[1464 / 1866] WebRTC
[1465 / 1867] WebRTC
[1466 / 1867] WebRTC
[1466 / 1868] WebRTC
[1472 / 1868] WebRTC
[1474 / 1868] WebRTC-product
[1479 / 1880] NIOUDPTransport
[1481 / 1886] QUIC
[1482 / 1886] NIOUDPTransport
[1493 / 1886] QUIC
[1496 / 1886] QUIC-product
[1497 / 1886] QUIC-product
[1500 / 1886] NIOUDPTransport
[1501 / 1886] NIOUDPTransport
[1503 / 1886] NIOUDPTransport
[1504 / 1886] NIOUDPTransport
[1509 / 1889] SSLDTLSMechanism
[1516 / 1889] SSLX509
[1520 / 1891] LibP2PNode
[1523 / 1893]
[1524 / 1902] LibP2PNode
[1528 / 1916] NIOHTTP1
[1529 / 1916] LibP2PNode
[1544 / 1916] QUIC
[1546 / 1916] NIOHTTP1
[1547 / 1916] NIOHTTP1
[1548 / 1917] NIOUDPTransport
[1550 / 1917] NIOUDPTransport
[1552 / 1917] NIOHTTP1
[1555 / 1917] NIOHTTP1
[1560 / 1917] NIOFoundationCompat
[1562 / 1918] P2PCore
[1565 / 1918] NIOFoundationCompat
[1567 / 1918] LibP2PCore-product
[1571 / 1921] P2PCore
[1572 / 1921] NIOWebSocket
[1576 / 1939] NIOWebSocket
[1577 / 1939] NIOFoundationEssentialsCompat
[1580 / 1939] NIOEmbedded
[1581 / 1939] QUICConnectionCore
[1582 / 1939] QUICConnectionCore
[1586 / 1940] P2PCore
[1596 / 1941] NIOHTTP1
[1596 / 1941] P2PCertificate
[1598 / 1941] P2PCore
[1598 / 1941] P2PCertificate
[1599 / 1941] NIOWebSocket-product
[1600 / 1941] NIOWebSocket-product
[1603 / 1941] NIOWebSocket
[1605 / 1941] NIOFoundationEssentialsCompat
[1613 / 1963] P2PPnet
[1613 / 1963] P2PSecurity
[1631 / 1977] P2PPnet
[1634 / 1989] P2PPnet
[1641 / 1989] P2PMux
[1641 / 1989] P2PTransport
[1661 / 1989] P2PPnet
[1663 / 1989] NIOWebSocket
[1667 / 1992] P2PTransport
[1669 / 1992] P2PSecurity
[1678 / 1992] P2PNAT
[1681 / 1992] P2PNAT
[1682 / 1992] P2PNAT
[1688 / 1993] P2PPnet
[1690 / 1993] P2PPnet
[1690 / 1995] P2PSessionTransport
[1695 / 1995] P2PNegotiation
[1695 / 1995] P2PProtocols
[1699 / 1995] P2PDiscovery
[1700 / 1995] P2PDiscovery
[1702 / 1996] P2PDiscovery
[1706 / 1996] P2PCore
[1708 / 1997] P2PCore
[1713 / 1997]
[1714 / 1997] QUICConnectionEngineCore
[1718 / 1999] TLS
[1723 / 2009] P2PTransportTCP
[1726 / 2009] P2PTransportTCP
[1737 / 2009] P2PTransportWebSocket-product
[1738 / 2009] P2PTransportWebSocket-product
[1745 / 2021] P2PSessionTransport
[1747 / 2030] P2PTransportMemory
[1750 / 2030] P2PTransportMemory
[1764 / 2031] P2PTransportWebSocket
[1765 / 2031] P2PSecurityTLS
[1771 / 2031] P2PTransportWebSocket
[1771 / 2032] P2PTransportQUIC
[1775 / 2032] P2PTransportQUIC
[1777 / 2033] P2PSecurityTLS
[1781 / 2034] P2PSecurityPlaintext
[1786 / 2043] P2PSecurityPlaintext
[1790 / 2073] P2PProtocols
[1792 / 2073] TLS
[1796 / 2082] P2PDiscoveryBeacon
[1810 / 2082] P2PTransportMemory
[1810 / 2082] P2PSecurityTLS
[1816 / 2083] P2PTransportWebRTC
[1818 / 2083] P2PSecurityTLS
[1820 / 2083] P2PSecurityNoise
[1822 / 2084] P2PMuxMplex
[1833 / 2084] P2PDiscoveryBeacon
[1842 / 2084] P2PProtocols
[1844 / 2084] P2PProtocols
[1845 / 2084] P2PPlumtree
[1849 / 2084] P2PMuxYamux
[1850 / 2084] P2PMuxYamux-product
[1852 / 2084] P2PMuxYamux
[1852 / 2084] P2PMuxYamux-product
[1856 / 2085] P2PProtocols
[1857 / 2085] P2PProtocols
[1858 / 2085] P2PProtocols
[1861 / 2086] P2PSecurityNoise
[1864 / 2086] P2PSecurityNoise
[1867 / 2086] P2PDiscoveryBeacon
[1868 / 2086] P2PDiscoveryBeacon
[1870 / 2086] P2PDiscovery
[1872 / 2086]
[1875 / 2094] P2PTransportWebRTC
[1875 / 2095] TLS-product
[1877 / 2104] P2PTransportWebRTC
[1878 / 2104] P2PMuxMplex
[1882 / 2105] P2PTransportQUIC
[1888 / 2105] P2PTransportWebRTC
[1890 / 2105] P2PTransportWebRTC
[1891 / 2105] P2PTransportWebRTC
[1892 / 2106] P2PTransportWebRTC
[1892 / 2106] P2PTransportQUIC
[1893 / 2106] P2PTransportWebRTC
[1896 / 2106] P2PTransportWebRTC
[1901 / 2106] P2PTransportWebRTC
[1907 / 2106]
[1910 / 2108] LibP2PNode
[1915 / 2129] P2PTransportWebRTC
[1920 / 2152] P2PPing
[1921 / 2161] P2PKademlia
[1924 / 2161] P2PRuntime
[1932 / 2161] P2PRuntime
[1934 / 2171] P2PRendezvous
[1948 / 2171] P2PHTTP
[1960 / 2171] P2PHTTP
[1963 / 2171] P2PRuntime
[1965 / 2171] P2PRendezvous
[1966 / 2171] P2PKademlia
[1968 / 2171] P2PKademlia
[1973 / 2171] P2PRendezvous-product
[1975 / 2171] P2PRendezvous
[1977 / 2171] P2PPlumtree
[1981 / 2172] P2PGossipSub
[1989 / 2172] P2PPlumtree
[1990 / 2172] P2PPing
[1991 / 2173] P2PTransportWebRTC
[1993 / 2173] P2PPlumtree
[1996 / 2173] P2PKademlia
[2000 / 2174] P2PRendezvous
[2002 / 2174] P2PRendezvous
[2005 / 2175] P2PPlumtree
[2008 / 2176] P2PPing
[2011 / 2176] P2PIdentify
[2013 / 2176] P2PIdentify
[2014 / 2176] P2PHTTP
[2017 / 2176] P2PGossipSub
[2018 / 2176] P2PHTTP-product
[2019 / 2176] P2PHTTP
[2020 / 2176] P2PGossipSub-product
[2023 / 2177] P2PHTTP
[2024 / 2177] P2PHTTP
[2024 / 2177] P2PIdentify
[2027 / 2178] P2PIdentify
[2032 / 2190] P2PDiscoverySWIM
[2036 / 2194] P2PDiscoveryWiFiBeacon
[2041 / 2194] P2PDiscoveryWiFiBeacon-product
[2044 / 2194] P2PDiscoverySWIM
[2051 / 2195] P2PKademlia
[2059 / 2195] P2PDiscoveryMDNS-product
[2060 / 2195] P2PDiscoveryMDNS-product
[2061 / 2195] P2PDiscoveryWiFiBeacon
[2061 / 2195]
[2068 / 2223] P2PWebRTC
[2070 / 2224] P2PDiscoveryCYCLON
[2079 / 2242] P2PDCUtR
[2084 / 2243] P2PDiscoveryMDNS
[2085 / 2243] P2PWebRTC
[2091 / 2243] P2PDiscoveryCYCLON
[2095 / 2245] P2PWebRTC
[2109 / 2245] P2PDiscoveryCYCLON
[2113 / 2245] P2PDiscoveryCYCLON
[2116 / 2245] P2PDCUtR
[2120 / 2245] P2PDCUtR
[2125 / 2246] P2PCircuitRelay
[2130 / 2246] P2PCircuitRelay
[2131 / 2247] P2PDiscoveryCYCLON
[2133 / 2247] P2PDiscoveryCYCLON
[2134 / 2247] P2PDiscoveryCYCLON
[2137 / 2247] P2PAutoNAT
[2139 / 2247] P2PAutoNAT
[2140 / 2247] P2PAutoNAT
[2141 / 2247] P2PAutoNAT-product
[2144 / 2247] P2PAutoNAT
[2145 / 2248] P2PDCUtR
[2147 / 2249]
[2151 / 2254] P2PDiscoveryPlumtree
[2152 / 2254] NIOUDPTransport-product
[2156 / 2254]
[2163 / 2255] P2PCore
[2169 / 2255] P2PCertificate
[2172 / 2255] P2PDiscoveryPlumtree
[2178 / 2265] P2PTransport
[2181 / 2266] P2PDiscoveryPlumtree
[2185 / 2267] P2PCircuitRelay
[2186 / 2267] P2PCircuitRelay
[2186 / 2267] P2P
[2189 / 2267] P2PTransport-product
[2189 / 2267] P2PTransportTCP
[2194 / 2267] P2PSecurityNoise
[2196 / 2267] P2P
[2206 / 2267] P2P
[2207 / 2267] P2PTransportWebSocket-product
[2215 / 2268]
[2220 / 2268] P2PTransportQUIC
[2227 / 2268] P2PKademlia
[2236 / 2268] P2PDCUtR
[2238 / 2268] P2PDiscoveryBeacon-product
[2246 / 2270] P2PRuntime-product
[2252 / 2270] P2PPlumtree-product
[2257 / 2270] P2PDiscoveryMDNS-product
[2258 / 2270] P2PWebRTC
[2258 / 2270] P2PDiscoveryCYCLON-product
[2264 / 2270]
[2264 / 2270] P2PDiscoveryPlumtree-product
[2267 / 2271] P2P
[2270 / 2272] P2P
[2272 / 2272] P2P-product
[2272 / 2272] PingPongDemo-product
Build complete! (136.31 secs)
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" : "/host/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"
}
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:c77fcce225e223ac0fafed844619173fc6de8d62dd560eeb28db3182af6a282b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Done.