aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/transport/__init__.py
blob: df9c209773cecddf8dba4c6bb37b1cee063b61af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""MeshBay Node transport layer — TCP+TLS (v1), QUIC (v2), WebRTC (browsers)."""
from .server import ChunkServer
from .client import ChunkClient
from .http_server import create_http_app

# QUIC transport (MNP v2) — requires aioquic>=1.0
try:
    from .quic_server import QuicChunkServer, Denylist
    from .quic_client import QuicChunkClient
    QUIC_AVAILABLE = True
except ImportError:
    QuicChunkServer = None  # type: ignore[assignment,misc]
    QuicChunkClient = None  # type: ignore[assignment,misc]
    Denylist = None  # type: ignore[assignment,misc]
    QUIC_AVAILABLE = False

# WebRTC transport (browsers) — requires aiortc>=1.9
try:
    from .webrtc_server import WebRTCTransport, WebRTCPeerSession
    WEBRTC_AVAILABLE = True
except ImportError:
    WebRTCTransport = None  # type: ignore[assignment,misc]
    WebRTCPeerSession = None  # type: ignore[assignment,misc]
    WEBRTC_AVAILABLE = False

__all__ = [
    "ChunkServer", "ChunkClient", "create_http_app",
    "QuicChunkServer", "QuicChunkClient", "Denylist", "QUIC_AVAILABLE",
    "WebRTCTransport", "WebRTCPeerSession", "WEBRTC_AVAILABLE",
]