websocket

WebSocket client and server for Kit using native Zig FFI (RFC 6455)

Files

FileDescription
.editorconfigEditor formatting configuration
.gitignoreGit ignore rules for build artifacts and dependencies
.tool-versionsasdf tool versions (Zig, Kit)
LICENSEMIT license file
README.mdThis file
examples/websocket.kitExample: websocket
kit.tomlPackage manifest with metadata and dependencies
src/websocket.kitWebSocket error type for typed error handling.
tests/websocket.test.kitTests for websocket
zig/kit_ffi.zigZig FFI module for kit ffi
zig/websocket.zigZig FFI module for websocket

Architecture

WebSocket Handshake

sequenceDiagram participant Client participant Server Client->>Server: HTTP Upgrade Request Server->>Client: 101 Switching Protocols Note over Client,Server: WebSocket Connection Open Client->>Server: Text/Binary Frame Server->>Client: Text/Binary Frame Client->>Server: Ping Server->>Client: Pong Client->>Server: Close Frame Server->>Client: Close Frame Note over Client,Server: Connection Closed

FFI Structure

graph TD A[Kit Code] -->|import Websocket| B[src/main.kit] B -->|extern-zig| C[zig/websocket.zig] C --> D[zig/kit_ffi.zig] D --> E[Zig std.http]

Dependencies

No Kit package dependencies.

Installation

kit add gitlab.com/kit-lang/packages/kit-websocket.git

Usage

import Kit.Websocket

License

MIT License - see LICENSE for details.

Exported Functions & Types

WebSocketError

WebSocket error type for typed error handling. Variants distinguish between different failure modes.

Variants

WebSocketConnectionError {message}
WebSocketHandshakeError {message}
WebSocketSendError {message}
WebSocketRecvError {message}
WebSocketProtocolError {message}