flare_mlake · API

flare.ws

WebSocket client and server (RFC 6455).

Built on flare.http (HTTP Upgrade handshake) and flare.tcp. Supports text and binary frames, ping/pong keep-alives, masking (client→server), and clean close handshake. SIMD-accelerated payload masking for payloads ≥128 bytes.

Public API
from flare.ws import (
    WsClient, WsServer,
    WsFrame, WsOpcode, WsCloseCode,
    WsProtocolError, WsHandshakeError,
)
  • WsClient — WebSocket client: connect, send, recv, close.
  • WsServer — WebSocket server: upgrades HTTP connections to WebSocket.
  • WsFrame — A single WebSocket frame: text, binary, ping, pong, close.
  • WsOpcode — Opcode byte constants (TEXT, BINARY, PING, PONG, CLOSE).
  • WsCloseCode — Close status code constants (NORMAL, GOING_AWAY, …).
  • WsProtocolError — Raised on RFC 6455 protocol violations.
  • WsHandshakeError — Raised when the HTTP Upgrade handshake fails.
Example
from flare.ws import WsClient, WsFrame, WsOpcode

def main() raises:
    # Connect to a WebSocket echo server
    var ws = WsClient.connect("ws://echo.websocket.events")

    # Send a text frame
    _ = ws.send(WsFrame.text("hello, flare!"))

    # Receive echo
    var frame = ws.recv()
    if frame.opcode == WsOpcode.TEXT:
        print(frame.text_payload()) # hello, flare!

    # Ping / pong
    _ = ws.send(WsFrame.ping())
    var pong = ws.recv() # WsOpcode.PONG

    # Clean close
    ws.close()
TLS WebSocket
from flare.ws import WsClient
from flare.tls import TlsConfig

def main() raises:
    var ws = WsClient.connect("wss://echo.websocket.events", TlsConfig())
    _ = ws.send(WsFrame.text("secure hello"))
    var frame = ws.recv()
    print(frame.text_payload())
    ws.close()