The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-libp2p, reference main (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-1":/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: main
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
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0851ac2 Complete QUIC interop release gates
Cloned https://github.com/1amageek/swift-libp2p.git
Revision (git rev-parse @):
0851ac2356a5d31fe07a10f93ff4188bb3c3d357
SUCCESS checkout https://github.com/1amageek/swift-libp2p.git at main
========================================
Build
========================================
Selected platform:         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-1":/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-webrtc.git
Fetching https://github.com/1amageek/swift-SWIM.git
Fetching https://github.com/1amageek/swift-quic.git
Fetching https://github.com/1amageek/swift-ssl.git
Fetching https://github.com/1amageek/swift-tls.git
Fetching https://github.com/1amageek/swift-nio-udp.git
[1/125] Fetching swift-nio-udp
[16/1492] Fetching swift-nio-udp, swift-tls
Fetched https://github.com/1amageek/swift-nio-udp.git (0.49s)
[96/1367] Fetching swift-tls
Fetching https://github.com/1amageek/swift-mDNS.git
[712/1779] Fetching swift-tls, swift-swim
[1304/2797] Fetching swift-tls, swift-swim, swift-webrtc
[1641/4779] Fetching swift-tls, swift-swim, swift-webrtc, swift-quic
[3478/8218] Fetching swift-tls, swift-swim, swift-webrtc, swift-quic, swift-ssl
Fetched https://github.com/1amageek/swift-webrtc.git (0.58s)
[4346/7200] Fetching swift-tls, swift-swim, swift-quic, swift-ssl
Fetching https://github.com/apple/swift-log.git
Fetched https://github.com/1amageek/swift-tls.git (0.61s)
[4011/5833] Fetching swift-swim, swift-quic, swift-ssl
Fetched https://github.com/1amageek/swift-quic.git (0.61s)
[2063/3851] Fetching swift-swim, swift-ssl
Fetching https://github.com/1amageek/swift-crypto.git
Fetching https://github.com/apple/swift-nio.git
Fetched https://github.com/1amageek/swift-SWIM.git (0.69s)
Fetched https://github.com/1amageek/swift-ssl.git (0.69s)
Fetching https://github.com/1amageek/swift-networking.git
[1/348] Fetching swift-mdns
Fetched https://github.com/1amageek/swift-mDNS.git (0.48s)
[1/8165] Fetching swift-log
[2043/20574] Fetching swift-log, swift-crypto
[9159/20674] Fetching swift-log, swift-crypto, swift-networking
Fetched https://github.com/1amageek/swift-networking.git (0.45s)
[9406/20574] Fetching swift-log, swift-crypto
Fetched https://github.com/apple/swift-log.git (0.56s)
[1365/12409] Fetching swift-crypto
[12410/98595] Fetching swift-crypto, swift-nio
Fetched https://github.com/1amageek/swift-crypto.git (1.11s)
[7757/86186] Fetching swift-nio
Fetched https://github.com/apple/swift-nio.git (3.55s)
Computing version for https://github.com/1amageek/swift-webrtc.git
Computed https://github.com/1amageek/swift-webrtc.git at 3.0.0 (4.43s)
Computing version for https://github.com/1amageek/swift-quic.git
Computed https://github.com/1amageek/swift-quic.git at 2.0.2 (0.23s)
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.20s)
Computing version for https://github.com/1amageek/swift-mDNS.git
Computed https://github.com/1amageek/swift-mDNS.git at 2.0.0 (0.21s)
Computing version for https://github.com/1amageek/swift-crypto.git
Computed https://github.com/1amageek/swift-crypto.git at 4.5.4 (1.09s)
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.34s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-system.git
[1/1885] Fetching swift-atomics
[1886/8868] Fetching swift-atomics, swift-system
Fetched https://github.com/apple/swift-atomics.git (0.57s)
[2654/6983] Fetching swift-system
Fetched https://github.com/apple/swift-system.git (0.65s)
[1/27779] Fetching swift-collections
Fetched https://github.com/apple/swift-collections.git (1.32s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (1.51s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (0.30s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.30s)
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-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-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.1
Creating working copy for https://github.com/1amageek/swift-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-SWIM.git
Working copy of https://github.com/1amageek/swift-SWIM.git resolved at 2.0.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.103.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.1
Creating working copy for https://github.com/1amageek/swift-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-crypto.git
Working copy of https://github.com/1amageek/swift-crypto.git resolved at 4.5.4
Creating working copy for https://github.com/1amageek/swift-tls.git
Working copy of https://github.com/1amageek/swift-tls.git resolved at 2.1.0
Creating working copy for https://github.com/1amageek/swift-nio-udp.git
Working copy of https://github.com/1amageek/swift-nio-udp.git resolved at 1.1.5
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.8.1
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.1
Creating working copy for https://github.com/1amageek/swift-networking.git
Working copy of https://github.com/1amageek/swift-networking.git resolved at 0.1.0
Building for debugging...
[Computing dependencies]
[Provisioning 2 / 189]
[Constructing description]
[Pre-planning 1 / 4379]
[Planning 1 / 4379]
[Planning 1527 / 4379]
[Planning 2401 / 4379]
[Planning 3295 / 4379]
[Planning 4088 / 4379]
[Planning deferred tasks]
[Constructing 1 / 9118]
[Constructing 2702 / 9118]
[Constructing 7010 / 9118]
[Starting]
[6 / 1405] Atomics-product
[227 / 1405] P2PTestSupport
[489 / 1405] NetworkingDatagram
[680 / 1421] P2PTestSupport
[688 / 1466] SSLCryptoContracts
[704 / 1466] NetworkingCore
[716 / 1466] SWIMWire
[717 / 1466] _NIODataStructures
[728 / 1466] SWIMWire
[728 / 1466] _NIOBase64
[737 / 1467] SWIMWire-product
[739 / 1467] _NIOBase64
[742 / 1467] SSLCryptoContracts
[744 / 1467] SSLCryptoContracts
[747 / 1467] SSLCryptoContracts-product
[751 / 1468] P2PTestSupport
[756 / 1468] P2PTestSupport
[762 / 1469] NetworkingCore
[765 / 1469] TLSTypes
[772 / 1470] Logging
[774 / 1470] Logging-product
[778 / 1471] Logging
[780 / 1471] _NIODataStructures
[782 / 1472] _NIODataStructures
[789 / 1473] SWIMWire
[797 / 1503] TLSTypes
[800 / 1513] TLSWireCore
[802 / 1522] CNIOWindows
[812 / 1531] Atomics
[814 / 1531] CNIOPosix
[815 / 1531] Logging
[818 / 1532] TLSWireCore
[819 / 1532] TLSWireCore
[821 / 1532] TLSWireCore
[830 / 1532] InternalCollectionsUtilities
[833 / 1532] InternalCollectionsUtilities
[835 / 1532] InternalCollectionsUtilities
[840 / 1532] TLSWireCore
[843 / 1532] TLSTypes
[845 / 1532] SWIMWire
[854 / 1532] NetworkingCore
[858 / 1532] NetworkingCore
[860 / 1533] TLSWireCore
[866 / 1534] Logging
[869 / 1534] InternalCollectionsUtilities
[871 / 1534] SpanPreview
[873 / 1534] InternalCollectionsUtilities
[874 / 1534] InternalCollectionsUtilities
[875 / 1534] DTLSWireCore
[877 / 1534] DNSWire
[879 / 1535] NIOConcurrencyHelpers
[889 / 1535] DNSWire
[889 / 1535] InternalCollectionsUtilities
[893 / 1535] Atomics
[895 / 1535] Atomics
[895 / 1535] Atomics-product
[897 / 1535]
[902 / 1535] CNIOLinux
[909 / 1535] CNIODarwin
[914 / 1545] SpanPreview
[915 / 1554] SWIM
[924 / 1566] NetworkingWASI
[926 / 1566] NetworkingWASI
[928 / 1569] NetworkingWASI
[935 / 1579] SpanPreview
[937 / 1580] SpanPreview
[951 / 1581] SWIM
[951 / 1581] CNIOAtomics
[953 / 1581] CNIOAtomics
[956 / 1581] SWIM
[969 / 1582] Atomics
[969 / 1582] SWIM-product
[970 / 1582] QUICWire
[972 / 1582] QUICWire
[973 / 1582] QUICWire
[974 / 1582] QUICWire-product
[975 / 1582] QUICWire-product
[976 / 1582] QUICWire-product
[978 / 1582] NetworkingWASI-product
[980 / 1583] NetworkingFoundationCompat-product
[983 / 1583] NetworkingFoundationCompat-product
[986 / 1584] NetworkingPOSIX
[989 / 1584] NetworkingDatagram-product
[993 / 1584] InternalCollectionsUtilities
[998 / 1584] DNSWire
[1005 / 1587] NetworkingCore
[1009 / 1601] SSLCore
[1021 / 1601] SSLCore
[1022 / 1601] SSLCore-product
[1026 / 1602] SSLCore-product
[1029 / 1602] DTLSRecordCore
[1037 / 1617] NetworkingPOSIX
[1039 / 1644] NetworkingPOSIX
[1042 / 1645] SSLCore
[1048 / 1654] QUICStreamCore
[1061 / 1654] NetworkingPOSIX
[1070 / 1654] QUICStreamCore
[1073 / 1654] QUICRecoveryCore
[1075 / 1655] QUICRecoveryCore
[1078 / 1655] SWIM
[1080 / 1655] SWIM
[1082 / 1655] NetworkingTime
[1087 / 1655] NetworkingPOSIX
[1089 / 1656] NetworkingPOSIX
[1091 / 1656] QUICStreamCore
[1092 / 1656] NetworkingPOSIX-product
[1094 / 1656] MDNS
[1097 / 1656] DequeModule
[1100 / 1657] QUICRecoveryCore
[1101 / 1657] DequeModule
[1102 / 1657] QUICRecoveryCore
[1105 / 1657] DTLSWireCore
[1107 / 1657] DTLSWireCore
[1108 / 1657] DTLSWireCore
[1110 / 1658] DTLSWireCore
[1112 / 1658] NetworkingPOSIX
[1114 / 1658] DTLSWire-product
[1118 / 1668] SSLASN1
[1120 / 1668] SSLASN1
[1122 / 1668] SSLASN1
[1128 / 1669] SSLASN1
[1129 / 1669] SSLCrypto
[1130 / 1669] SSLCrypto
[1134 / 1670] TLSTypes
[1140 / 1679] SSLCrypto
[1142 / 1679] SSLCrypto
[1143 / 1679] SSLCrypto
[1144 / 1680] SSLCrypto
[1145 / 1681] SSLCrypto
[1156 / 1681] SSLX509
[1159 / 1681] QUICWire
[1162 / 1681] NIOCore
[1164 / 1682] TLSWireCore
[1166 / 1692] MDNS
[1168 / 1701] MDNS
[1169 / 1701] SSLX509
[1174 / 1701] TLSTypes-product
[1175 / 1701] SSLX509
[1176 / 1701] SSLCrypto
[1179 / 1701] SSLCrypto
[1184 / 1701] SSLX509-product
[1187 / 1701] SSLCore
[1189 / 1701] MDNS
[1190 / 1701] MDNS-product
[1192 / 1701] MDNS-product
[1194 / 1701] MDNS
[1194 / 1701] DTLSWireCore
[1197 / 1710] QUICPacketProtectionCore
[1199 / 1719] DTLSWireCore
[1205 / 1720] DTLSHandshakeCore
[1208 / 1727] QUICPacketProtectionCore
[1211 / 1728] SSLX509
[1218 / 1728] QUICPacketProtectionCore
[1219 / 1728] QUICConnectionCore
[1223 / 1729] SSLCrypto
[1225 / 1730] QUICPacketProtectionCore
[1228 / 1730] LibP2PCore
[1230 / 1730] LibP2PCore
[1233 / 1731] LibP2PCore
[1240 / 1731] MDNS
[1242 / 1731] SSLDTLSMechanism
[1244 / 1731] DTLSHandshakeCore
[1245 / 1731]
[1246 / 1732] NIOCore
[1248 / 1743] SSLTLS
[1250 / 1743] NIOCore
[1253 / 1753] NIOCore
[1255 / 1763] SSLTLS
[1256 / 1763] SSLTLS
[1257 / 1764] SSLTLS
[1258 / 1764] SSLTLS
[1259 / 1764] SSLTLS
[1261 / 1764] SSLTLS
[1267 / 1764] Crypto
[1271 / 1764] SSLTLS-product
[1272 / 1764] SSLTLS-product
[1273 / 1764] SSLTLS-product
[1274 / 1764] SSLQUIC
[1276 / 1764] NIOCore
[1277 / 1764] NIOCore
[1278 / 1764] NIOCore
[1279 / 1764] LibP2PCore
[1286 / 1764] NIOCore
[1287 / 1764] SSLTLS
[1290 / 1764] NIOPosix
[1291 / 1764] NIOCore-product
[1292 / 1764] Crypto-product
[1294 / 1765] SSLTLS
[1295 / 1765] Crypto
[1296 / 1765] SSLTLS
[1297 / 1765] Atomics-product
[1298 / 1766] QUICWire
[1303 / 1776] SSLDTLSMechanism
[1305 / 1776] SSLDTLSMechanism
[1312 / 1776] SSLDTLSMechanism
[1314 / 1776] SSLDTLSMechanism
[1316 / 1776] SSLDTLSMechanism
[1317 / 1776] SSLDTLS
[1320 / 1786] NetworkingPOSIX
[1322 / 1786] QUICConnectionCore
[1322 / 1786] SSLDTLSMechanism
[1328 / 1786] QUICConnectionCore
[1331 / 1786] SSLDTLSMechanism
[1331 / 1786] QUICConnectionEngineCore
[1333 / 1787] SSLDTLSMechanism
[1335 / 1787] SSLDTLSMechanism
[1340 / 1797] SSLQUIC
[1341 / 1797] SSLQUIC
[1343 / 1797] SSLQUIC
[1345 / 1797] SSLQUIC
[1347 / 1797] SSLQUIC
[1353 / 1806] NIOPosix
[1362 / 1813] NIOEmbedded
[1364 / 1823] SSLDTLS-product
[1366 / 1823] TLS
[1373 / 1824] NIOFoundationEssentialsCompat
[1378 / 1824] SSLASN1
[1380 / 1825] SSLQUIC
[1382 / 1825] SSLQUIC
[1388 / 1825] NIOPosix
[1389 / 1825] NIOPosix
[1390 / 1826] SSLDTLS
[1392 / 1826] SSLDTLS
[1394 / 1826] NIOFoundationEssentialsCompat
[1395 / 1826] NIOEmbedded
[1397 / 1826] NIOPosix
[1399 / 1827] NIOPosix
[1404 / 1827] NIOPosix-product
[1408 / 1828] Crypto
[1412 / 1843] QUICTLS
[1413 / 1843] QUICTLS
[1416 / 1843] QUICTLS
[1421 / 1843] QUICTLS
[1426 / 1843] QUICTLS
[1428 / 1843] QUICTLS
[1431 / 1844] QUICTLS
[1433 / 1844] QUICTLS
[1434 / 1845] QUICConnectionEngineCore-product
[1436 / 1845]
[1440 / 1848] NIOUDPTransport
[1443 / 1866] NIOUDPTransport
[1444 / 1866] NIO
[1446 / 1866] NIO
[1451 / 1866] TLS
[1462 / 1866] QUICConnectionEngineCore
[1464 / 1866] TLS-product
[1465 / 1867] WebRTC
[1466 / 1867] WebRTC
[1469 / 1867] QUICConnectionEngineCore
[1470 / 1867] NetworkingPOSIX-product
[1472 / 1867] NIOUDPTransport-product
[1474 / 1867] NIOUDPTransport
[1477 / 1868] NIOHTTP1
[1480 / 1869] NIOUDPTransport
[1486 / 1879] QUIC
[1488 / 1879] SSLCrypto
[1491 / 1879] QUIC
[1493 / 1879]
[1503 / 1886] NIOFoundationCompat
[1504 / 1895] NIOHTTP1
[1505 / 1904] WebRTC
[1508 / 1904] NIOFoundationCompat
[1513 / 1904] WebRTC
[1515 / 1905] WebRTC
[1516 / 1906] WebRTC
[1517 / 1906] NIOHTTP1
[1519 / 1907] NIOHTTP1
[1524 / 1907] TLS
[1527 / 1907] QUIC
[1534 / 1907] WebRTC-product
[1535 / 1907] WebRTC-product
[1537 / 1907] WebRTC-product
[1539 / 1907] NIOHTTP1
[1540 / 1907] NIOWebSocket
[1541 / 1907] NIOWebSocket
[1542 / 1907] NIOHTTP1-product
[1543 / 1907] NIOFoundationCompat
[1545 / 1908] P2PCore
[1548 / 1908] SSLCrypto-product
[1550 / 1908] SSLDTLSMechanism
[1551 / 1909] NIOWebSocket
[1553 / 1920] P2PCore
[1554 / 1920] P2PCore
[1557 / 1938] LibP2PNode
[1558 / 1938] NIOWebSocket
[1562 / 1938] NIOWebSocket
[1563 / 1938] NIOWebSocket
[1573 / 1938] P2PCore
[1576 / 1938] NIOHTTP1
[1577 / 1939] LibP2PNode
[1582 / 1939] P2PCertificate
[1583 / 1939] NIOWebSocket
[1584 / 1939] NIOWebSocket-product
[1586 / 1939] NIOWebSocket-product
[1589 / 1939] NIOHTTP1
[1590 / 1939] NIOPosix
[1593 / 1939] NIOPosix
[1597 / 1939] NIOEmbedded
[1600 / 1940] NIOWebSocket
[1602 / 1941] NIOWebSocket
[1605 / 1941] LibP2PNode
[1605 / 1941]
[1606 / 1941] SSLDTLS
[1608 / 1943] QUICConnectionCore
[1613 / 1958] P2PNegotiation
[1615 / 1965] P2PTransport
[1633 / 1977] SSLTLS
[1637 / 1990] P2PPnet
[1653 / 1990] SSLTLS
[1656 / 1990] P2PTransportTCP
[1658 / 1990] P2PTransportWebSocket
[1663 / 1991] P2PSecurity
[1664 / 1992] P2PCertificate
[1669 / 1992] P2PNAT
[1670 / 1993] P2PPnet
[1678 / 1993] P2PDiscovery
[1682 / 1993] P2PPnet
[1682 / 1994] P2PNegotiation
[1689 / 1995] P2PNAT
[1695 / 1995] P2PSessionTransport
[1699 / 1995] P2PDiscovery
[1700 / 1995] P2PProtocols
[1701 / 1996] P2PProtocols
[1705 / 1996] P2PMux
[1707 / 1996] P2PSecurityTLS
[1710 / 1997] P2PCertificate-product
[1718 / 2013] P2PSessionTransport
[1724 / 2013] P2PTransportTCP
[1724 / 2014] P2PTransportMemory
[1726 / 2043] P2PTransportMemory
[1729 / 2043] P2PTransportTCP
[1735 / 2043] P2PSessionTransport
[1752 / 2043] P2PTransportWebSocket
[1754 / 2043] P2PSecurityPlaintext
[1765 / 2043] P2PSecurityNoise
[1771 / 2043] P2PTransportTCP-product
[1773 / 2043] P2PTransportMemory
[1774 / 2044] P2PTransportTCP
[1778 / 2044] P2PSecurityTLS
[1780 / 2044] P2PSecurityTLS
[1781 / 2046] P2PTransportTCP
[1786 / 2046] P2PSecurityTLS
[1787 / 2047] P2PTransportQUIC
[1795 / 2048] P2PSecurityNoise
[1797 / 2048] P2PSecurityNoise
[1799 / 2048] P2PTransportWebRTC
[1801 / 2048] P2PSecurityNoise
[1803 / 2049] P2PTransportWebRTC
[1809 / 2049] P2PSecurityTLS
[1813 / 2054] P2PMuxMplex
[1817 / 2076] P2PDiscoveryBeacon
[1821 / 2084] P2PProtocols
[1823 / 2084] P2PProtocols
[1826 / 2084] P2PProtocols
[1833 / 2084] P2PMuxMplex
[1835 / 2084] P2PMuxMplex
[1839 / 2084] P2PMuxYamux
[1841 / 2084] P2PMuxYamux
[1844 / 2084] P2PMuxMplex
[1855 / 2085] P2PMuxYamux-product
[1857 / 2085] P2PSecurityNoise
[1859 / 2086] P2PProtocols
[1861 / 2086] P2PProtocols
[1862 / 2086] P2PProtocols
[1864 / 2086] P2PDiscoveryBeacon
[1865 / 2086] P2PDiscoveryWiFiBeacon
[1866 / 2086] P2PDiscoveryWiFiBeacon
[1869 / 2087] P2PMuxYamux
[1870 / 2087] P2PCircuitRelay
[1872 / 2088]
[1876 / 2088] TLS
[1878 / 2090] NIOUDPTransport
[1882 / 2097] P2PTransportWebRTC
[1883 / 2105] WebRTC
[1885 / 2105] P2PTransportWebRTC
[1886 / 2105] P2PTransportQUIC
[1887 / 2105] P2PTransportQUIC
[1893 / 2105] P2PDiscoveryBeacon
[1895 / 2106] P2PDiscoveryBeacon
[1896 / 2106] P2PTransportWebRTC
[1896 / 2106] P2PTransportQUIC
[1898 / 2106] P2PTransportWebRTC
[1900 / 2106] P2PTransportWebRTC
[1904 / 2106] P2PTransportWebRTC
[1907 / 2107]
[1914 / 2146] P2PPlumtree
[1915 / 2156] P2PPlumtree
[1928 / 2156] P2PHTTP
[1937 / 2176] P2PGossipSub
[1945 / 2181] P2PDiscoverySWIM
[1953 / 2189] P2PDiscoveryMDNS
[1960 / 2197] P2PIdentify
[1968 / 2206] P2PDCUtR
[1971 / 2206] P2PDiscoveryMDNS
[1973 / 2206] P2PDiscoverySWIM
[1993 / 2206] P2PRuntime-product
[1995 / 2206] P2PRuntime
[1996 / 2206] P2PDCUtR
[2001 / 2206] P2PDCUtR
[2004 / 2206] P2PRendezvous
[2005 / 2206] P2PGossipSub
[2011 / 2206] P2PRendezvous
[2013 / 2206] P2PRendezvous-product
[2017 / 2207] P2PPlumtree
[2018 / 2207] P2PPlumtree
[2020 / 2207] P2PRendezvous
[2021 / 2208] P2PTransportWebRTC
[2026 / 2208] P2PPlumtree
[2028 / 2208] P2PKademlia
[2030 / 2208] P2PRendezvous
[2031 / 2209] P2PKademlia-product
[2033 / 2209] P2PRendezvous
[2035 / 2210] P2PPing
[2039 / 2211] P2PPlumtree
[2042 / 2211] P2PIdentify
[2044 / 2211] P2PIdentify-product
[2046 / 2211] P2PHTTP
[2046 / 2211] P2PIdentify
[2048 / 2211] P2PHTTP
[2049 / 2211] P2PHTTP
[2049 / 2211] P2PHTTP-product
[2051 / 2211] P2PGossipSub
[2053 / 2211] P2PGossipSub-product
[2055 / 2212] P2PHTTP
[2057 / 2212] P2PHTTP
[2060 / 2212] P2PGossipSub
[2061 / 2212] P2PDiscoveryWiFiBeacon
[2062 / 2213] P2PIdentify
[2065 / 2213] P2PDiscoverySWIM
[2067 / 2213] P2PIdentify
[2068 / 2213] P2PDiscoveryWiFiBeacon-product
[2069 / 2213] P2PDiscoveryPlumtree
[2073 / 2214] P2PKademlia
[2074 / 2214] P2PKademlia
[2074 / 2214] P2PGossipSub
[2077 / 2215] P2PGossipSub
[2080 / 2216] P2PGossipSub
[2085 / 2216] P2PDCUtR
[2086 / 2216] P2PDiscoveryCYCLON-product
[2087 / 2216] P2PDCUtR-product
[2090 / 2216] P2PDiscoveryMDNS
[2092 / 2217] P2PDCUtR
[2100 / 2229] P2PDiscoverySWIM
[2101 / 2238] WebRTC
[2103 / 2238] P2PCircuitRelay
[2111 / 2238] P2PCircuitRelay
[2112 / 2239] P2PDiscoveryCYCLON
[2114 / 2239] P2PDiscoveryCYCLON
[2118 / 2239] P2PCircuitRelay
[2123 / 2239] P2PCircuitRelay-product
[2126 / 2240] P2PDCUtR
[2129 / 2240] P2PAutoNAT
[2130 / 2240] P2PAutoNAT
[2130 / 2240] P2PAutoNAT-product
[2133 / 2247] QUICConnectionEngineCore-product
[2135 / 2247] QUIC
[2137 / 2247] P2PWebRTC
[2138 / 2247] P2PWebRTC
[2146 / 2248] P2PDiscoveryPlumtree
[2146 / 2248] P2PWebRTC
[2151 / 2253] WebRTC-product
[2161 / 2255] NIOWebSocket
[2163 / 2255] NIOWebSocket
[2175 / 2257] P2PCircuitRelay
[2175 / 2257]
[2186 / 2267] P2PDiscoveryPlumtree
[2187 / 2267] LibP2PNode-product
[2194 / 2267] P2PSecurityPlaintext
[2197 / 2267] P2P
[2212 / 2268] P2PMuxMplex
[2218 / 2268] P2PSecurityTLS-product
[2218 / 2268] PingPongDemo-product
[2234 / 2270] P2PDiscoveryMDNS
[2242 / 2270] P2PTransportWebRTC
[2243 / 2270] P2PTransportQUIC-product
[2244 / 2271] PingPongDemo-product
[2253 / 2272] P2PDiscoveryPlumtree
[2255 / 2272] PingPongDemo-product
[2259 / 2272] P2PGossipSub-product
[2261 / 2272] P2PDiscoveryMDNS-product
[2264 / 2272] P2PDCUtR-product
[2264 / 2272] P2PTransportWebRTC-product
[2266 / 2272] P2PIdentify-product
[2267 / 2272]
[2270 / 2272] P2P
[2272 / 2272] P2PDCUtR-product
[2272 / 2272] P2PAutoNAT-product
[2272 / 2272] P2PDiscoveryWiFiBeacon-product
[2272 / 2272] P2PWebRTC-product
[2272 / 2272] PingPongDemo-product
[2272 / 2272] P2P-product
Build complete! (146.53 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.