# ZenWebsocket v0.9.0 - Table of Contents > A robust WebSocket client library for Elixir, built on Gun transport for production-grade reliability. Designed for financial APIs with automatic reconnection, comprehensive error handling, and real-world testing. ## Pages - Getting Started - [ZenWebsocket](readme.md) - [Changelog](changelog.md) - [Changelog Archive — 0.1.1 through 0.4.3](changelog-archive.md) - [ZenWebsocket Usage Rules](usage_rules.md) - [ZenWebsocket Examples](examples.md) - Guides - [Building Exchange Adapters Guide](building_adapters.md) - [Performance Tuning Guide](performance_tuning.md) - [Troubleshooting Reconnection Guide](troubleshooting_reconnection.md) - [Deployment Considerations for Trading Applications](deployment_considerations.md) - Architecture - [ZenWebsocket Architecture](architecture.md) - [Reconnection Architecture Guide](reconnection.md) - [Gun Integration Guide](gun_integration.md) - [ZenWebsocket Supervision Strategy](supervision_strategy.md) ## Modules - [ZenWebsocket](ZenWebsocket.md): A robust WebSocket client library for Elixir, built on Gun transport. - [ZenWebsocket.Client](ZenWebsocket.Client.md): WebSocket client GenServer using Gun as transport layer. - [ZenWebsocket.Client.CallFacade](ZenWebsocket.Client.CallFacade.md): Process-down-safe GenServer.call helpers used by `ZenWebsocket.Client`. - [ZenWebsocket.Client.Callbacks](ZenWebsocket.Client.Callbacks.md): `handle_call/3` and `handle_info/2` clause bodies for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Connection](ZenWebsocket.Client.Connection.md): Gun connection open, upgrade, and cleanup for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Correlation](ZenWebsocket.Client.Correlation.md): JSON-RPC response and timeout correlation for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Frames](ZenWebsocket.Client.Frames.md): Inbound WebSocket frame routing for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Reconnect](ZenWebsocket.Client.Reconnect.md): Explicit reconnect target and option handling for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Recorder](ZenWebsocket.Client.Recorder.md): Session recorder lifecycle and frame writes for `ZenWebsocket.Client`. - [ZenWebsocket.Client.Retry](ZenWebsocket.Client.Retry.md): Connection-error retry state machine for `ZenWebsocket.Client`. - [ZenWebsocket.Client.RetryPolicy](ZenWebsocket.Client.RetryPolicy.md): Pure retry eligibility and error normalization for `ZenWebsocket.Client`. - [ZenWebsocket.Client.TransportErrors](ZenWebsocket.Client.TransportErrors.md): Gun error/down logging and retry dispatch for `ZenWebsocket.Client`. - [ZenWebsocket.ClientSupervisor](ZenWebsocket.ClientSupervisor.md): Optional supervisor for WebSocket client connections. - [ZenWebsocket.Config](ZenWebsocket.Config.md): Configuration struct for WebSocket connections. - [ZenWebsocket.ConnectionRegistry](ZenWebsocket.ConnectionRegistry.md): Opt-in ETS connection tracking, without a GenServer. - [ZenWebsocket.Debug](ZenWebsocket.Debug.md): Conditional debug logging for ZenWebsocket. - [ZenWebsocket.ErrorHandler](ZenWebsocket.ErrorHandler.md): Simple error handling for WebSocket connections. - [ZenWebsocket.Examples.AdapterSupervisor](ZenWebsocket.Examples.AdapterSupervisor.md): Supervisor for WebSocket adapters with fault tolerance. - [ZenWebsocket.Examples.BatchSubscriptionManager](ZenWebsocket.Examples.BatchSubscriptionManager.md): Simple batch subscription manager for efficiently subscribing to multiple channels. - [ZenWebsocket.Examples.DeribitAdapter](ZenWebsocket.Examples.DeribitAdapter.md): Simplified Deribit WebSocket API adapter. - [ZenWebsocket.Examples.DeribitGenServerAdapter](ZenWebsocket.Examples.DeribitGenServerAdapter.md): Production-ready supervised Deribit adapter with automatic reconnection. - [ZenWebsocket.Examples.DeribitRpc](ZenWebsocket.Examples.DeribitRpc.md): Shared Deribit JSON-RPC method definitions and request builders. - [ZenWebsocket.Examples.Docs.BasicUsage](ZenWebsocket.Examples.Docs.BasicUsage.md): Minimal connect-send-receive flows against a live endpoint. - [ZenWebsocket.Examples.Docs.ErrorHandling](ZenWebsocket.Examples.Docs.ErrorHandling.md): A GenServer that owns a connection and retries it with backoff. - [ZenWebsocket.Examples.Docs.JsonRpcClient](ZenWebsocket.Examples.Docs.JsonRpcClient.md): JSON-RPC 2.0 calls over a WebSocket connection. - [ZenWebsocket.Examples.Docs.SubscriptionManagement](ZenWebsocket.Examples.Docs.SubscriptionManagement.md): Channel subscription flows over a WebSocket connection. - [ZenWebsocket.Examples.JsonRpcTransport](ZenWebsocket.Examples.JsonRpcTransport.md): Shared JSON-RPC send helper used by Deribit example adapters. - [ZenWebsocket.Examples.PlatformAdapterTemplate](ZenWebsocket.Examples.PlatformAdapterTemplate.md): Minimal template for creating platform-specific WebSocket adapters. - [ZenWebsocket.Examples.SupervisedClient](ZenWebsocket.Examples.SupervisedClient.md): Basic WebSocket client supervision example. - [ZenWebsocket.Examples.UsagePatterns](ZenWebsocket.Examples.UsagePatterns.md): Examples of different WebSocket client usage patterns. This module demonstrates three ways to use ZenWebsocket: 1. Direct connection (no supervision) 2. Using ClientSupervisor 3. Direct supervision in your app - [ZenWebsocket.Examples.UsagePatterns.ExampleApp](ZenWebsocket.Examples.UsagePatterns.ExampleApp.md): Example application module demonstrating all WebSocket connection patterns. - [ZenWebsocket.Frame](ZenWebsocket.Frame.md): WebSocket frame encoding and decoding utilities. - [ZenWebsocket.HeartbeatInterval](ZenWebsocket.HeartbeatInterval.md): Records application-level heartbeat pongs and emits interval telemetry. - [ZenWebsocket.HeartbeatManager](ZenWebsocket.HeartbeatManager.md): Manages heartbeat lifecycle for WebSocket connections. - [ZenWebsocket.Helpers.Deribit](ZenWebsocket.Helpers.Deribit.md): Helper functions for Deribit-specific WebSocket operations. - [ZenWebsocket.JsonRpc](ZenWebsocket.JsonRpc.md): JSON-RPC 2.0 request builder and response matcher. - [ZenWebsocket.LatencyStats](ZenWebsocket.LatencyStats.md): Bounded circular buffer for latency statistics calculation. - [ZenWebsocket.MessageHandler](ZenWebsocket.MessageHandler.md): Message handling utilities for WebSocket connections. - [ZenWebsocket.PoolRouter](ZenWebsocket.PoolRouter.md): Health-based connection routing for WebSocket client pools. - [ZenWebsocket.RateLimiter](ZenWebsocket.RateLimiter.md): Token bucket rate limiter for WebSocket API calls. - [ZenWebsocket.Reconnection](ZenWebsocket.Reconnection.md): Internal reconnection helper for Client GenServer. - [ZenWebsocket.Recorder](ZenWebsocket.Recorder.md): Pure functions for WebSocket session recording and replay. - [ZenWebsocket.RecorderServer](ZenWebsocket.RecorderServer.md): Async GenServer for recording WebSocket sessions to JSONL files. - [ZenWebsocket.RequestCorrelator](ZenWebsocket.RequestCorrelator.md): Manages request/response correlation for JSON-RPC WebSocket connections. - [ZenWebsocket.SafeCallback](ZenWebsocket.SafeCallback.md): Invokes user-provided lifecycle callbacks without letting them crash the caller. - [ZenWebsocket.SubscriptionManager](ZenWebsocket.SubscriptionManager.md): Tracks Deribit-dialect JSON-RPC subscriptions for reconnect restoration. - [ZenWebsocket.Testing](ZenWebsocket.Testing.md): Test helpers for consumers testing ZenWebsocket integrations. ## Mix Tasks - [mix zen_websocket.usage](Mix.Tasks.ZenWebsocket.Usage.md): Mix task to export ZenWebsocket usage rules for AI agents and developers. - [mix zen_websocket.validate_usage](Mix.Tasks.ZenWebsocket.ValidateUsage.md): Validates that code follows ZenWebsocket usage rules.