From 88cfc139333ac3fe5789f39f3970065181df9043 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sun, 9 Aug 2026 05:13:51 +0200 Subject: feat(node): add QUIC transport (MNP v2) — quic_server + quic_client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QuicChunkServer/QuicChunkClient: same MNP protocol over QUIC/UDP. Enables hole-punching (Spike 4 Cone NAT validated). Uses aioquic 1.3.0. Bug found+fixed: asyncio.Event race condition in client recv loop (quic_event_received overwrote _stream_events[0] after _recv created it). Fixed with asyncio.Queue (no shared mutable state). Server uses synchronous handlers in quic_event_received (avoids ensure_future transmit timing issue). 3/3 tests. Full suite: 50/50. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- packages/meshbay-node/src/meshbay_node/transport/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'packages/meshbay-node/src/meshbay_node/transport/__init__.py') diff --git a/packages/meshbay-node/src/meshbay_node/transport/__init__.py b/packages/meshbay-node/src/meshbay_node/transport/__init__.py index ddd11f5..8b49b22 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/__init__.py +++ b/packages/meshbay-node/src/meshbay_node/transport/__init__.py @@ -1,6 +1,9 @@ -"""TCP+TLS transport layer (MNP v1). QUIC added in v2.""" +"""MeshBay Node transport layer — TCP+TLS (MNP v1) and QUIC (MNP v2).""" from .server import ChunkServer from .client import ChunkClient from .http_server import create_http_app +from .quic_server import QuicChunkServer +from .quic_client import QuicChunkClient -__all__ = ["ChunkServer", "ChunkClient", "create_http_app"] +__all__ = ["ChunkServer", "ChunkClient", "create_http_app", + "QuicChunkServer", "QuicChunkClient"] -- cgit v1.2.3