# icey ## Guides - [icey](https://auscaster.com/icey/docs/guides.md): The usual C++ stack for realtime and media work is a mess. HTTP on one side, FFmpeg on another, WebRTC hidden behind Google's monolith, TURN treated as somebody else's problem, signalling left as an exercise for the reader. - [See It Work](https://auscaster.com/icey/docs/guides/run/index.md): icey-server is a single C++ binary for browser-facing realtime media over WebRTC. No Node.js, no third-party services, no multi-container ceremony. One binary, two ports, live video. - [Install](https://auscaster.com/icey/docs/guides/run/install.md): Every path to a running icey-server. Pick the one that fits your environment. - [Modes](https://auscaster.com/icey/docs/guides/run/modes.md): icey-server has three operational modes. Each changes what the server does with media and what the browser's role is. - [CLI Reference](https://auscaster.com/icey/docs/guides/run/cli.md): Full reference for the icey-server binary. - [HTTP Server](https://auscaster.com/icey/docs/guides/recipes/http-server.md): If you need the whole module surface, read the HTTP guide. If you want the actual connection model first, read HTTP Lifecycle. This page is the shortest path from zero to a real server. - [WebSocket Client And Server](https://auscaster.com/icey/docs/guides/recipes/websocket-client-server.md): Use this when the job is not "serve HTTP" but "upgrade and speak frames." - [TURN Server](https://auscaster.com/icey/docs/guides/recipes/turn-server.md): Use this page when you need a real relay, not a STUN-only best-case path. - [Webcam To Browser](https://auscaster.com/icey/docs/guides/recipes/webrtc-webcam-to-browser.md): This is one of icey's cleanest end-to-end paths. - [Browser To Recorder](https://auscaster.com/icey/docs/guides/recipes/webrtc-browser-to-recorder.md): This is the reverse of the "stream to browser" path. - [Config Reference](https://auscaster.com/icey/docs/guides/operate/config.md): icey-server reads configuration from a JSON file. CLI flags override config values. If neither is set, built-in defaults apply. - [Deploy](https://auscaster.com/icey/docs/guides/operate/deploy.md): How to run icey-server in production. Pick the deployment method that fits your infrastructure. - [TLS](https://auscaster.com/icey/docs/guides/operate/tls.md): WebRTC requires HTTPS in production browsers. If the page is served over plain HTTP from a non-localhost origin, browsers will refuse to grant camera/microphone access and WebRTC negotiation will fail silently. - [TURN Deployment](https://auscaster.com/icey/docs/guides/operate/turn.md): icey-server includes an embedded RFC 5766 TURN relay. It runs on a second port alongside the HTTP/WebSocket server. No external TURN service needed. - [Health And Monitoring](https://auscaster.com/icey/docs/guides/operate/health.md): icey-server exposes REST endpoints for health checks, readiness probes, and runtime status. - [Troubleshoot](https://auscaster.com/icey/docs/guides/operate/troubleshoot.md): Common failure modes and how to fix them. Start with the symptom, follow the tree. ## Concepts - [Architecture](https://auscaster.com/icey/docs/concepts/architecture.md): icey-server is not a monolith. It is a thin assembly layer over independent icey library modules. Every piece of the server — HTTP, signalling, media transport, relay, encoding — is a module you can use on its own. - [Modules](https://auscaster.com/icey/docs/concepts/modules.md): icey is organised into 16 modules. Each module builds as a separate library and declares its dependencies via CMake. Enable only what you need; dependencies resolve automatically. - [Runtime Contracts](https://auscaster.com/icey/docs/concepts/runtime-contracts.md): icey does a lot of work on one event loop with very little ceremony. That is a big part of why the library is fast. It also means there are a few rules you need to get right. - [PacketStream](https://auscaster.com/icey/docs/concepts/packetstream.md): PacketStream is the data plane running through a lot of icey. - [HTTP Lifecycle](https://auscaster.com/icey/docs/concepts/http-lifecycle.md): icey's HTTP layer is fast because it is not trying to hide what the connection is doing. - [WebRTC Session Flow](https://auscaster.com/icey/docs/concepts/webrtc-session-flow.md): In icey, that split is explicit. - [Base](https://auscaster.com/icey/docs/concepts/modules/base.md): The base module is the substrate every other icey module builds on. It provides the libuv event loop wrappers, the signal/slot system that wires components together, the PacketStream pipeline that moves data through the library, handle and stream abstractions for I/O, a structured logging system, a generic state… - [Crypto](https://auscaster.com/icey/docs/concepts/modules/crypto.md): The crypto module is the cryptographic foundation of icey. Every other module that needs cryptography depends on it; net uses it for TLS certificates, stun uses it for HMAC-SHA1 message integrity, and turn inherits both through stun. - [Net](https://auscaster.com/icey/docs/concepts/modules/net.md): The net module is icey's networking foundation. It provides non-blocking TCP streams, TLS-encrypted connections via OpenSSL 3.x, and UDP datagrams, all driven by the same libuv event loop that powers the base module. Everything above it in the stack — HTTP, WebSocket, Symple, STUN, TURN — is built on net. - [HTTP](https://auscaster.com/icey/docs/concepts/modules/http.md): The icey::http module delivers a full HTTP/1.1 stack built on two proven foundations: libuv for async I/O and llhttp for parsing (the same parser used in Node.js). Everything is non-blocking and event-driven. A single-threaded server handles thousands of concurrent connections without spawning one thread per request.… - [JSON](https://auscaster.com/icey/docs/concepts/modules/json.md): The json module is a thin layer over nlohmann/json that adds file I/O helpers, a serializable interface, deep traversal utilities, and a JSON-backed configuration class. We use it throughout icey; sched, pacm, and several other modules depend on it directly. - [AV](https://auscaster.com/icey/docs/concepts/modules/av.md): The av module is icey's media layer. It wraps FFmpeg's libavcodec, libavformat, libswscale, and libswresample into RAII types that integrate directly with PacketStream. Every class either produces packets, transforms them, or consumes them. None of them require manual memory management beyond construction and wiring. - [Speech](https://auscaster.com/icey/docs/concepts/modules/speech.md): Source → · CMake target: icey::speech - [Vision](https://auscaster.com/icey/docs/concepts/modules/vision.md): Source → · CMake target: icey::vision - [WebRTC](https://auscaster.com/icey/docs/concepts/modules/webrtc.md): CMake target: icey::webrtc Dependencies: icey::base, icey::net, icey::crypto, icey::av, icey::symple, libdatachannel (auto-fetched), OpenSSL 3.x, FFmpeg 5+ Licence: LGPL-2.1+ - [Symple](https://auscaster.com/icey/docs/concepts/modules/symple.md): Symple is a lightweight protocol and C++ implementation for peer discovery, room-based message routing, and real-time communication. It runs over plain WebSocket (RFC 6455); there is no Socket.IO dependency, no Engine.IO framing, and no polling fallback. Every connection is a native WebSocket from the first byte. - [STUN](https://auscaster.com/icey/docs/concepts/modules/stun.md): STUN (Session Traversal Utilities for NAT, RFC 5389) is the wire protocol underpinning all NAT traversal in icey. Every TURN message is a STUN message with a TURN-specific method. Every ICE connectivity check is a STUN Binding request. The stun module provides the complete codec for both, and the TURN module is built… - [TURN](https://auscaster.com/icey/docs/concepts/modules/turn.md): TURN (Traversal Using Relays around NAT, RFC 5766) lets a client obtain a public relay address on the server. Peers send data to that relay address; the server forwards it to the client. Roughly 30% of real-world WebRTC connections cannot reach each other directly and require this relay path. - [Archo](https://auscaster.com/icey/docs/concepts/modules/archo.md): The archo module provides ZIP archive handling built on zlib's minizip API. We use it wherever we need to unpack downloaded archives to disk; it is a direct dependency of pacm, which calls it to extract package files after each download completes. - [Graft](https://auscaster.com/icey/docs/concepts/modules/graft.md): API Reference → · Source → · CMake target: icey::graft - [Pacm](https://auscaster.com/icey/docs/concepts/modules/pacm.md): The pacm module is an embeddable package manager. We use it to give native applications the ability to install, update, and uninstall versioned archives (plugins, assets, or any packaged payload) from a remote HTTP endpoint, without shipping a separate management tool. - [Sched](https://auscaster.com/icey/docs/concepts/modules/sched.md): The sched module is a task scheduler for deferred and recurring jobs. We use it when work must happen at a specific time, on a repeating interval, or once per day at a configured hour; situations where a plain icy::Task is insufficient because we need timing control rather than just concurrent execution. - [Contributing](https://auscaster.com/icey/docs/concepts/contributing.md): Pull requests are always welcome. If you fix or improve anything, feel free to float a PR back upstream. - [Repository Conventions](https://auscaster.com/icey/docs/concepts/conventions.md): This page is for contributors changing icey itself. - [Releasing Icey](https://auscaster.com/icey/docs/concepts/releasing.md): VERSION is the Icey library version. CMake, release recipes, documentation examples, and the Debian changelog derive from it. Icey Server is a separate product with its own VERSION; its ICEY_VERSION pins an exact published Icey tag. ## API Reference - [AV module](https://auscaster.com/icey/docs/api-reference/av.md): Audio/video encoding, decoding, device capture, and media formats. - [v4l2](https://auscaster.com/icey/docs/api-reference/icy-av-v4l2.md): Linux V4L2 device enumeration helpers. - [coreaudio](https://auscaster.com/icey/docs/api-reference/icy-av-coreaudio.md): Apple CoreAudio device enumeration helpers. - [legacy](https://auscaster.com/icey/docs/api-reference/icy-av-legacy.md): Legacy timing helpers kept for compatibility with older media pipelines. - [legacy::FPSCounter](https://auscaster.com/icey/docs/api-reference/icy-av-legacy-FPSCounter.md): Legacy frames-per-second counter. - [avfoundation](https://auscaster.com/icey/docs/api-reference/icy-av-avfoundation.md): Apple AVFoundation device enumeration helpers. - [mediafoundation](https://auscaster.com/icey/docs/api-reference/icy-av-mediafoundation.md): Windows Media Foundation device enumeration helpers. - [wasapi](https://auscaster.com/icey/docs/api-reference/icy-av-wasapi.md): Windows WASAPI device enumeration helpers. - [LinuxDeviceWatcher](https://auscaster.com/icey/docs/api-reference/icy-av-LinuxDeviceWatcher.md): Monitors device add/remove events via libudev. - [ICapture](https://auscaster.com/icey/docs/api-reference/icy-av-ICapture.md): Abstract interface for audio and video capture devices. - [IEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-IEncoder.md): This is the abstract class for all encoders. - [AppleDeviceWatcher](https://auscaster.com/icey/docs/api-reference/icy-av-AppleDeviceWatcher.md): Monitors device add/remove events via AVFoundation notifications and CoreAudio property listeners. - [FPSCounter](https://auscaster.com/icey/docs/api-reference/icy-av-FPSCounter.md): FPS counter based on the simple moving average (SMA) algorithm. - [FPSLimiter](https://auscaster.com/icey/docs/api-reference/icy-av-FPSLimiter.md): PacketStream processor that caps packet throughput to a maximum FPS. - [AudioCapture](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCapture.md): Cross-platform audio capture device backed by FFmpeg input devices. - [MediaCapture](https://auscaster.com/icey/docs/api-reference/icy-av-MediaCapture.md): Unified capture and decode source for files and live media devices. - [VideoCapture](https://auscaster.com/icey/docs/api-reference/icy-av-VideoCapture.md): Cross-platform video device capturer backed by FFmpeg avdevice. - [DeviceWatcher](https://auscaster.com/icey/docs/api-reference/icy-av-DeviceWatcher.md): Base class for platform-specific device change monitors. - [DeviceManager](https://auscaster.com/icey/docs/api-reference/icy-av-DeviceManager.md): Enumerates and manages system audio and video devices. - [DeviceManager::HardwareCodec](https://auscaster.com/icey/docs/api-reference/icy-av-DeviceManager-HardwareCodec.md): Hardware codec descriptor. - [FormatRegistry](https://auscaster.com/icey/docs/api-reference/icy-av-FormatRegistry.md): Singleton registry of available media container formats for encoding and decoding. - [WindowsDeviceWatcher](https://auscaster.com/icey/docs/api-reference/icy-av-WindowsDeviceWatcher.md): Monitors device add/remove events via IMMNotificationClient (audio) and RegisterDeviceNotification (video). - [MultiplexEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-MultiplexEncoder.md): Multiplexing encoder that writes synchronized audio and video streams. - [AudioPacketEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-AudioPacketEncoder.md): PacketProcessor that encodes raw audio samples (PlanarAudioPacket or AudioPacket) into compressed packets via AudioEncoder. - [VideoPacketEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacketEncoder.md): PacketProcessor that encodes raw video frames (PlanarVideoPacket or VideoPacket) into compressed packets via VideoEncoder. - [RealtimePacketQueue](https://auscaster.com/icey/docs/api-reference/icy-av-RealtimePacketQueue.md): Queue that emits media packets in presentation-timestamp order relative to a realtime clock. - [RealtimePacketQueue::MediaPacketTimeCompare](https://auscaster.com/icey/docs/api-reference/icy-av-RealtimePacketQueue-MediaPacketTimeCompare.md): Comparator for ordering media packets by presentation timestamp. - [MultiplexPacketEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-MultiplexPacketEncoder.md): Encodes and multiplexes a realtime video stream form audio / video capture sources. - [Codec](https://auscaster.com/icey/docs/api-reference/icy-av-Codec.md): Codec for encoding/decoding media. - [AudioCodec](https://auscaster.com/icey/docs/api-reference/icy-av-AudioCodec.md): Audio codec parameters including channels, sample rate, and sample format. - [VideoCodec](https://auscaster.com/icey/docs/api-reference/icy-av-VideoCodec.md): Video codec parameters including resolution, frame rate, and pixel format. - [Deleter](https://auscaster.com/icey/docs/api-reference/icy-av-Deleter.md): RAII helpers for owning FFmpeg allocation types. - [Deleterp](https://auscaster.com/icey/docs/api-reference/icy-av-Deleterp.md): Deleter adaptor for functions like av_freep that take a pointer to a pointer. - [Format](https://auscaster.com/icey/docs/api-reference/icy-av-Format.md): Defines a media container format which is available through the FormatRegistry for encoding or decoding. - [EncoderState](https://auscaster.com/icey/docs/api-reference/icy-av-EncoderState.md): State machine states for the encoder pipeline. - [EncoderOptions](https://auscaster.com/icey/docs/api-reference/icy-av-EncoderOptions.md): Configuration options for audio and video encoders. - [AudioBuffer](https://auscaster.com/icey/docs/api-reference/icy-av-AudioBuffer.md): FIFO buffer for queuing audio samples between encoding stages. - [AudioContext](https://auscaster.com/icey/docs/api-reference/icy-av-AudioContext.md): Base context for audio encoding and decoding via FFmpeg. - [AudioDecoder](https://auscaster.com/icey/docs/api-reference/icy-av-AudioDecoder.md): Decodes compressed audio packets into raw sample frames. - [AudioEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-AudioEncoder.md): Encodes raw audio samples into a compressed format. - [VideoContext](https://auscaster.com/icey/docs/api-reference/icy-av-VideoContext.md): Base video context from which all video encoders and decoders derive. - [VideoDecoder](https://auscaster.com/icey/docs/api-reference/icy-av-VideoDecoder.md): Decodes compressed video packets into raw frames. - [VideoEncoder](https://auscaster.com/icey/docs/api-reference/icy-av-VideoEncoder.md): Encodes raw video frames into a compressed format. - [Device](https://auscaster.com/icey/docs/api-reference/icy-av-Device.md): Represents a system audio, video or render device. - [Device::AudioCapability](https://auscaster.com/icey/docs/api-reference/icy-av-Device-AudioCapability.md): An audio format supported by the device. - [Device::VideoCapability](https://auscaster.com/icey/docs/api-reference/icy-av-Device-VideoCapability.md): A video format supported by the device. - [AudioResampler](https://auscaster.com/icey/docs/api-reference/icy-av-AudioResampler.md): Converts audio samples between different formats, sample rates, and channel layouts. - [VideoConverter](https://auscaster.com/icey/docs/api-reference/icy-av-VideoConverter.md): Converts video frames between pixel formats and resolutions. - [MediaPacket](https://auscaster.com/icey/docs/api-reference/icy-av-MediaPacket.md): Timestamped media packet carrying raw audio or video data. - [VideoPacket](https://auscaster.com/icey/docs/api-reference/icy-av-VideoPacket.md): Video packet for interleaved formats. - [PlanarVideoPacket](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarVideoPacket.md): Video packet for planar formats. - [AudioPacket](https://auscaster.com/icey/docs/api-reference/icy-av-AudioPacket.md): Audio packet for interleaved formats. - [PlanarAudioPacket](https://auscaster.com/icey/docs/api-reference/icy-av-PlanarAudioPacket.md): Audio packet for planar formats. - [UV module](https://auscaster.com/icey/docs/api-reference/uv.md): The uv module contains C++ wrappers for libuv. - [Handle](https://auscaster.com/icey/docs/api-reference/icy-uv-Handle.md): Wrapper class for managing uv_handle_t variants. - [ScopedLoop](https://auscaster.com/icey/docs/api-reference/icy-uv-ScopedLoop.md): RAII wrapper for a libuv event loop. - [HandleStorage](https://auscaster.com/icey/docs/api-reference/icy-uv-HandleStorage.md): Extra storage placed around a raw libuv handle for close-time cleanup hooks. - [Context](https://auscaster.com/icey/docs/api-reference/icy-uv-Context.md): Shared libuv handle context. - [BasicEvent](https://auscaster.com/icey/docs/api-reference/icy-uv-BasicEvent.md): Default request callback event carrying a libuv status code. - [Request](https://auscaster.com/icey/docs/api-reference/icy-uv-Request.md): Wrapper class for managing uv_req_t variants. - [ConnectReq](https://auscaster.com/icey/docs/api-reference/icy-uv-ConnectReq.md): Asynchronous connection request for TCP sockets and named pipes. - [GetAddrInfoEvent](https://auscaster.com/icey/docs/api-reference/icy-uv-GetAddrInfoEvent.md): Callback event delivered when a GetAddrInfoReq resolves. - [GetAddrInfoReq](https://auscaster.com/icey/docs/api-reference/icy-uv-GetAddrInfoReq.md): DNS resolver request to get the IP address of a hostname. - [Net module](https://auscaster.com/icey/docs/api-reference/net.md): TCP/SSL/UDP networking, socket adapters, DNS resolution. - [net](https://auscaster.com/icey/docs/api-reference/icy-net.md): Socket transports, adapters, and address helpers. - [Address](https://auscaster.com/icey/docs/api-reference/icy-net-Address.md): Represents an IPv4 or IPv6 socket address with host and port. - [PacketSocketEmitter](https://auscaster.com/icey/docs/api-reference/icy-net-PacketSocketEmitter.md): Socket adapter that emits received data as packets. - [Socket](https://auscaster.com/icey/docs/api-reference/icy-net-Socket.md): Base socket implementation from which all sockets derive. - [SocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter.md): Abstract adapter interface for socket send/receive chains. - [SocketAdapter::DispatchScope](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter-DispatchScope.md): Defers receiver cleanup while any onSocketXxx dispatch loop is on the stack, so re-entrant callbacks cannot shrink `_rec - [SocketAdapter::Ref](https://auscaster.com/icey/docs/api-reference/icy-net-SocketAdapter-Ref.md): Reference-counted handle to a SocketAdapter. - [SocketEmitter](https://auscaster.com/icey/docs/api-reference/icy-net-SocketEmitter.md): SocketAdapter that exposes socket events as signals. - [SocketPacket](https://auscaster.com/icey/docs/api-reference/icy-net-SocketPacket.md): Default packet type emitted by sockets. - [SSLAdapter](https://auscaster.com/icey/docs/api-reference/icy-net-SSLAdapter.md): Manages the OpenSSL context and BIO buffers for an SSL socket connection. - [SSLContext](https://auscaster.com/icey/docs/api-reference/icy-net-SSLContext.md): OpenSSL SSL_CTX wrapper for client and server TLS configuration. - [SSLManager](https://auscaster.com/icey/docs/api-reference/icy-net-SSLManager.md): Singleton that owns the default client/server TLS contexts and related callbacks. - [SSLSession](https://auscaster.com/icey/docs/api-reference/icy-net-SSLSession.md): Cached SSL/TLS session wrapper used for client-side resumption. - [SSLSocket](https://auscaster.com/icey/docs/api-reference/icy-net-SSLSocket.md): SSL socket implementation. - [TCPSocket](https://auscaster.com/icey/docs/api-reference/icy-net-TCPSocket.md): TCP socket implementation. - [Transaction](https://auscaster.com/icey/docs/api-reference/icy-net-Transaction.md): Request/response helper for packet types emitted from a socket. - [UDPSocket](https://auscaster.com/icey/docs/api-reference/icy-net-UDPSocket.md): UDP socket implementation. - [VerificationErrorDetails](https://auscaster.com/icey/docs/api-reference/icy-net-VerificationErrorDetails.md): A utility class for certificate error handling. - [PacketInfo](https://auscaster.com/icey/docs/api-reference/icy-net-PacketInfo.md): Provides information about packets emitted from a socket. - [dns](https://auscaster.com/icey/docs/api-reference/icy-net-dns.md): DNS utilities. - [Base module](https://auscaster.com/icey/docs/api-reference/base.md): The base module contains reusable cross platform tools and utilities. - [hex](https://auscaster.com/icey/docs/api-reference/icy-hex.md): Hexadecimal encoding and decoding helpers. - [hex::Decoder](https://auscaster.com/icey/docs/api-reference/icy-hex-Decoder.md): Hex decoder. - [hex::Encoder](https://auscaster.com/icey/docs/api-reference/icy-hex-Encoder.md): Hex encoder. - [ipc](https://auscaster.com/icey/docs/api-reference/icy-ipc.md): Classes for inter-process communication. - [ipc::Queue](https://auscaster.com/icey/docs/api-reference/icy-ipc-Queue.md): IPC queue is for safely passing templated actions between threads and processes. - [ipc::SyncQueue](https://auscaster.com/icey/docs/api-reference/icy-ipc-SyncQueue.md): IPC synchronization queue is for passing templated actions between threads and the event loop we are synchronizing with. - [Action](https://auscaster.com/icey/docs/api-reference/icy-ipc-Action.md): Default action type for executing synchronized callbacks. - [test](https://auscaster.com/icey/docs/api-reference/icy-test.md): Modern unit testing framework. - [FunctionTest](https://auscaster.com/icey/docs/api-reference/icy-test-FunctionTest.md): Test wrapper for standalone test functions. - [Test](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md): Test wrapper class. - [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md): Test manager queue. - [time](https://auscaster.com/icey/docs/api-reference/icy-time.md): Classes and functions for handling time. - [base64](https://auscaster.com/icey/docs/api-reference/icy-base64.md): Base64 encoding and decoding helpers. - [base64::Decoder](https://auscaster.com/icey/docs/api-reference/icy-base64-Decoder.md): Base64 decoder. - [base64::Encoder](https://auscaster.com/icey/docs/api-reference/icy-base64-Encoder.md): Base64 encoder. - [deleter](https://auscaster.com/icey/docs/api-reference/icy-deleter.md): Deleter helpers for objects managed through custom destruction routines. - [Array](https://auscaster.com/icey/docs/api-reference/icy-deleter-Array.md): Deleter functor for array pointers. Calls delete[] on the pointer. - [Dispose](https://auscaster.com/icey/docs/api-reference/icy-deleter-Dispose.md): Deleter functor that calls dispose() on the pointer. - [numeric](https://auscaster.com/icey/docs/api-reference/icy-numeric.md): Integer parsing and formatting helpers. - [basic](https://auscaster.com/icey/docs/api-reference/icy-basic.md): Interface classes. - [basic::Decoder](https://auscaster.com/icey/docs/api-reference/icy-basic-Decoder.md): Abstract interface for stream decoders. - [basic::Encoder](https://auscaster.com/icey/docs/api-reference/icy-basic-Encoder.md): Abstract interface for stream encoders. - [Runnable](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md): Abstract interface for classes that can be run and cancelled. - [Sendable](https://auscaster.com/icey/docs/api-reference/icy-basic-Sendable.md): Abstract interface for classes that can be sent and cancelled. - [Startable](https://auscaster.com/icey/docs/api-reference/icy-basic-Startable.md): Abstract interface for a classes that can be started and stopped. - [fs](https://auscaster.com/icey/docs/api-reference/icy-fs.md): Cross-platform filesystem path and file helpers. - [util](https://auscaster.com/icey/docs/api-reference/icy-util.md): Miscellaneous string, parsing, and version utilities. - [Version](https://auscaster.com/icey/docs/api-reference/icy-util-Version.md): Semantic version number with major, minor, and patch fields. - [Pipe](https://auscaster.com/icey/docs/api-reference/icy-Pipe.md): Named pipe / stdio stream built on uv_pipe_t. - [Idler](https://auscaster.com/icey/docs/api-reference/icy-Idler.md): Asynchronous type that triggers callbacks when the event loop is idle. - [Queue](https://auscaster.com/icey/docs/api-reference/icy-Queue.md): Thread-safe queue container. - [RunnableQueue](https://auscaster.com/icey/docs/api-reference/icy-RunnableQueue.md): Queue of runnable tasks for sequential execution. - [SyncQueue](https://auscaster.com/icey/docs/api-reference/icy-SyncQueue.md): SyncQueue extends Synchronizer to implement a syn - [AsyncQueue](https://auscaster.com/icey/docs/api-reference/icy-AsyncQueue.md): AsyncQueue is a thread-based queue which receives packets from any thread source and dispatches them asynchronously. - [Timer](https://auscaster.com/icey/docs/api-reference/icy-Timer.md): Asynchronous event based timer. - [MutableBuffer](https://auscaster.com/icey/docs/api-reference/icy-MutableBuffer.md): The MutableBuffer class provides a safe representation of a buffer that can be modified. - [ConstBuffer](https://auscaster.com/icey/docs/api-reference/icy-ConstBuffer.md): The ConstBuffer class provides a safe representation of a buffer that cannot be modified. - [BitReader](https://auscaster.com/icey/docs/api-reference/icy-BitReader.md): Class for reading binary streams. - [BitWriter](https://auscaster.com/icey/docs/api-reference/icy-BitWriter.md): Class for reading/writing binary streams. - [DynamicBitWriter](https://auscaster.com/icey/docs/api-reference/icy-DynamicBitWriter.md): Class for reading/writing dynamically resizable binary streams. - [LogWriter](https://auscaster.com/icey/docs/api-reference/icy-LogWriter.md): Log output stream writer. - [AsyncLogWriter](https://auscaster.com/icey/docs/api-reference/icy-AsyncLogWriter.md): Thread based log output stream writer. - [Logger](https://auscaster.com/icey/docs/api-reference/icy-Logger.md): Logger class. - [LogChannel](https://auscaster.com/icey/docs/api-reference/icy-LogChannel.md): Named log output channel with configurable severity level and formatting. - [ConsoleChannel](https://auscaster.com/icey/docs/api-reference/icy-ConsoleChannel.md): Log channel that writes formatted messages to standard output. - [FileChannel](https://auscaster.com/icey/docs/api-reference/icy-FileChannel.md): Log channel that writes formatted messages to a file. - [RotatingFileChannel](https://auscaster.com/icey/docs/api-reference/icy-RotatingFileChannel.md): Log channel that writes to time-rotated log files. - [RefCounted](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md): Base class for intrusive reference counting. - [IntrusivePtr](https://auscaster.com/icey/docs/api-reference/icy-IntrusivePtr.md): Intrusive smart pointer for RefCounted objects. - [Random](https://auscaster.com/icey/docs/api-reference/icy-Random.md): Random implements a pseudo random number generator (PRNG) using the Mersenne Twister algo - [Runner](https://auscaster.com/icey/docs/api-reference/icy-Runner.md): Runner is a virtual interface for implementing asynchronous objects such as threads and f - [Runner::Context](https://auscaster.com/icey/docs/api-reference/icy-Runner-Context.md): Context object which we send to the thread context. - [Signal< RT(Args...), MutexT >](https://auscaster.com/icey/docs/api-reference/icy-Signal-RT-Args-MutexT.md): Thread-safe signal and slot implementation for callback-based event dispatch. - [Signal< RT(Args...), MutexT >::EmitGuard](https://auscaster.com/icey/docs/api-reference/icy-Signal-RT-Args-MutexT-EmitGuard.md): Balances beginEmitLocked() on every exit path, including a throwing slot. - [Stream](https://auscaster.com/icey/docs/api-reference/icy-Stream.md): Basic stream type for sockets and pipes. - [Stream::OwnedWriteReq](https://auscaster.com/icey/docs/api-reference/icy-Stream-OwnedWriteReq.md): A libuv write request that owns the bytes it writes until the write completes. - [Thread](https://auscaster.com/icey/docs/api-reference/icy-Thread.md): Platform-independent wrapper around an operating system thread. - [Process](https://auscaster.com/icey/docs/api-reference/icy-Process.md): Spawns and manages a child process with stdin/stdout/stderr pipes. - [Timeout](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md): Timeout counter which expires after a given delay. - [TimedToken](https://auscaster.com/icey/docs/api-reference/icy-TimedToken.md): Token that expires after the specified duration. - [Timestamp](https://auscaster.com/icey/docs/api-reference/icy-Timestamp.md): A Timestamp stores a monotonic* time value with (theoretical) microseconds resolution. - [Timespan](https://auscaster.com/icey/docs/api-reference/icy-Timespan.md): A class that represents time spans up to microsecond resolution. - [DateTime](https://auscaster.com/icey/docs/api-reference/icy-DateTime.md): This class represents an instant in time, expressed in years, months, days, hours, minutes, seconds and milliseconds based on the Gregorian calendar. - [Timezone](https://auscaster.com/icey/docs/api-reference/icy-Timezone.md): This class provides information about the current timezone. - [LocalDateTime](https://auscaster.com/icey/docs/api-reference/icy-LocalDateTime.md): This class represents an instant in local time (as opposed to UTC), expressed in years, months, days, hours, minutes, seconds and milliseconds based on the Gregorian calendar. - [DateTimeFormat](https://auscaster.com/icey/docs/api-reference/icy-DateTimeFormat.md): Definition of date/time formats and various constants used by [DateTimeFormatter](icy-DateTimeFormatter.html#datetimeformatter - [DateTimeFormatter](https://auscaster.com/icey/docs/api-reference/icy-DateTimeFormatter.md): This class converts dates and times into strings, supporting a variety of standard and custom formats. - [DateTimeParser](https://auscaster.com/icey/docs/api-reference/icy-DateTimeParser.md): This class provides a method for parsing dates and times from strings. - [Stopwatch](https://auscaster.com/icey/docs/api-reference/icy-Stopwatch.md): A simple facility to measure time intervals with microsecond resolution. - [ThreadedStreamReader](https://auscaster.com/icey/docs/api-reference/icy-ThreadedStreamReader.md): Threaded stream reader class. - [StreamWriter](https://auscaster.com/icey/docs/api-reference/icy-StreamWriter.md): Packet stream writer class. - [State](https://auscaster.com/icey/docs/api-reference/icy-State.md): State class for state machines. - [Stateful](https://auscaster.com/icey/docs/api-reference/icy-Stateful.md): State machine implementation. - [IRegistry](https://auscaster.com/icey/docs/api-reference/icy-IRegistry.md): Abstract interface for object registries. - [Singleton](https://auscaster.com/icey/docs/api-reference/icy-Singleton.md): Helper template class for managing singleton objects allocated on the heap. - [Singleton::Deleter](https://auscaster.com/icey/docs/api-reference/icy-Singleton-Deleter.md): Custom deleter that can access private destructors via friendship. - [KeyedStore](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md): A keyed store of unique_ptr values with optional lifecycle hooks. - [KVCollection](https://auscaster.com/icey/docs/api-reference/icy-KVCollection.md): A keyed value store (values stored by copy, not pointer). - [NVCollection](https://auscaster.com/icey/docs/api-reference/icy-NVCollection.md): A storage container for a name value collections. - [Application](https://auscaster.com/icey/docs/api-reference/icy-Application.md): Main icey application class. - [SyncPacketQueue](https://auscaster.com/icey/docs/api-reference/icy-SyncPacketQueue.md): Synchronized packet queue for event loop integration. - [AsyncPacketQueue](https://auscaster.com/icey/docs/api-reference/icy-AsyncPacketQueue.md): Thread-based asynchronous packet dispatch queue. - [RateLimiter](https://auscaster.com/icey/docs/api-reference/icy-RateLimiter.md): Token bucket rate limiter for throttling message send frequency. - [PacketStreamAdapter](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md): This class is a wrapper for integrating external classes with the a PacketStream's - [PacketProcessor](https://auscaster.com/icey/docs/api-reference/icy-PacketProcessor.md): This class is a virtual interface for creating PacketStreamAdapters which process that and emit the IPacket type. - [PacketStream](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md): Processes and broadcasts IPackets through a configurable adapter graph. - [Synchronizer](https://auscaster.com/icey/docs/api-reference/icy-Synchronizer.md): Synchronizer enables any thread to communicate with the associated event loop via synchronized callbacks. - [TimedManager](https://auscaster.com/icey/docs/api-reference/icy-TimedManager.md): Timed pointer manager Provides timed persistent data storage for class instances. - [IPacketCreationStrategy](https://auscaster.com/icey/docs/api-reference/icy-IPacketCreationStrategy.md): Abstract strategy for creating typed packets from raw buffer data. - [PacketFactory](https://auscaster.com/icey/docs/api-reference/icy-PacketFactory.md): Priority-ordered factory that creates typed packets from raw buffers using registered strategies. - [StreamManager](https://auscaster.com/icey/docs/api-reference/icy-StreamManager.md): Manages a named collection of PacketStream instances with lifecycle callbacks. - [IDiagnostic](https://auscaster.com/icey/docs/api-reference/icy-IDiagnostic.md): Abstract interface for diagnostic information providers. - [AsyncDiagnostic](https://auscaster.com/icey/docs/api-reference/icy-AsyncDiagnostic.md): Asynchronous diagnostic information collector. - [DiagnosticManager](https://auscaster.com/icey/docs/api-reference/icy-DiagnosticManager.md): Registry and manager for diagnostic providers. - [PacketTransaction](https://auscaster.com/icey/docs/api-reference/icy-PacketTransaction.md): Request/response transaction with timeout and retry logic. - [Task](https://auscaster.com/icey/docs/api-reference/icy-Task.md): Abstract base class for implementing asynchronous tasks. - [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md): Runner for tasks that inherit the Task interface. - [IPacket](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md): The basic packet type which is passed around the icey system. - [FlagPacket](https://auscaster.com/icey/docs/api-reference/icy-FlagPacket.md): Packet for sending bitwise flags along the packet stream. - [RawPacket](https://auscaster.com/icey/docs/api-reference/icy-RawPacket.md): RawPacket is the default data packet type which consists of an optionally managed char - [Configuration](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md): Configuration is an abstract base class for managing different kinds of configuration storage back ends such as JSON, XML, or database. - [ScopedConfiguration](https://auscaster.com/icey/docs/api-reference/icy-ScopedConfiguration.md): ScopedConfiguration provides multiple levels of configuration for a module. - [Error](https://auscaster.com/icey/docs/api-reference/icy-Error.md): Basic error type. - [LogStream](https://auscaster.com/icey/docs/api-reference/icy-LogStream.md): No-op log record used when logging is compiled out. - [LogVoidify](https://auscaster.com/icey/docs/api-reference/icy-LogVoidify.md): Adapts a LogStream expression to void so the streaming log macros can short-circuit o - [NullSharedMutex](https://auscaster.com/icey/docs/api-reference/icy-NullSharedMutex.md): No-op mutex for single-threaded signal usage. - [Bitwise](https://auscaster.com/icey/docs/api-reference/icy-Bitwise.md): Container for smart management of bitwise integer flags. - [AbstractDelegate](https://auscaster.com/icey/docs/api-reference/icy-AbstractDelegate.md): Abstract delegate interface. - [FunctionDelegate](https://auscaster.com/icey/docs/api-reference/icy-FunctionDelegate.md): The FunctionDelegate contains a std::function. - [ClassDelegate](https://auscaster.com/icey/docs/api-reference/icy-ClassDelegate.md): The ClassDelegate contains a pointer to a class member. - [ConstClassDelegate](https://auscaster.com/icey/docs/api-reference/icy-ConstClassDelegate.md): The ConstClassDelegate contains a pointer to a const class member. - [PolymorphicDelegate](https://auscaster.com/icey/docs/api-reference/icy-PolymorphicDelegate.md): Polymorphic function delegate. - [OptionParser](https://auscaster.com/icey/docs/api-reference/icy-OptionParser.md): Command-line option parser. - [ShutdownCmd](https://auscaster.com/icey/docs/api-reference/icy-ShutdownCmd.md): Shutdown command packet for signalling process termination. - [PacketAdapterReference](https://auscaster.com/icey/docs/api-reference/icy-PacketAdapterReference.md): Provides a reference to a PacketStreamAdapter with optional ownership. - [PacketStreamState](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamState.md): State machine states for PacketStream. - [PacketCreationStrategy](https://auscaster.com/icey/docs/api-reference/icy-PacketCreationStrategy.md): This template class implements an adapter that sits between an SignalBase and an object receiving notifications from it. - [SharedLibrary](https://auscaster.com/icey/docs/api-reference/icy-SharedLibrary.md): Loads a shared library at runtime and resolves exported symbols. - [DiagnosticState](https://auscaster.com/icey/docs/api-reference/icy-DiagnosticState.md): State definitions for diagnostic providers. - [TransactionState](https://auscaster.com/icey/docs/api-reference/icy-TransactionState.md): State machine states for PacketTransaction. - [IPacketInfo](https://auscaster.com/icey/docs/api-reference/icy-IPacketInfo.md): An abstract interface for packet sources to provide extra information about packets. - [HTTP module](https://auscaster.com/icey/docs/api-reference/http.md): HTTP client/server, WebSocket support, form handling, cookies, URL parsing. - [http](https://auscaster.com/icey/docs/api-reference/icy-http.md): HTTP request/response types, parsers, and server/client helpers. - [Authenticator](https://auscaster.com/icey/docs/api-reference/icy-http-Authenticator.md): Maintains HTTP Basic or Digest authentication state for outbound requests. - [BasicAuthenticator](https://auscaster.com/icey/docs/api-reference/icy-http-BasicAuthenticator.md): Encodes and decodes HTTP Basic authentication credentials. - [ChunkedAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ChunkedAdapter.md): HTTP chunked transfer encoding adapter for streaming responses. - [Client](https://auscaster.com/icey/docs/api-reference/icy-http-Client.md): HTTP client for creating and managing outgoing connections. - [ClientConnection](https://auscaster.com/icey/docs/api-reference/icy-http-ClientConnection.md): HTTP client connection for managing request/response lifecycle. - [ClientConnection::PendingWrite](https://auscaster.com/icey/docs/api-reference/icy-http-ClientConnection-PendingWrite.md): Data written before the socket connects, kept with its write flags and sent on connect. - [Connection](https://auscaster.com/icey/docs/api-reference/icy-http-Connection.md): Base HTTP connection managing socket I/O and message lifecycle - [ConnectionAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ConnectionAdapter.md): Default HTTP socket adapter for reading and writing HTTP messages - [ConnectionPool](https://auscaster.com/icey/docs/api-reference/icy-http-ConnectionPool.md): LIFO connection pool for reusing ServerConnection objects. - [ConnectionStream](https://auscaster.com/icey/docs/api-reference/icy-http-ConnectionStream.md): Packet stream wrapper for an HTTP connection. - [Cookie](https://auscaster.com/icey/docs/api-reference/icy-http-Cookie.md): HTTP cookie value plus its response/header attributes. - [FilePart](https://auscaster.com/icey/docs/api-reference/icy-http-FilePart.md): Form part backed by a file on disk. - [FormPart](https://auscaster.com/icey/docs/api-reference/icy-http-FormPart.md): An implementation of FormPart. - [FormWriter](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter.md): FormWriter is an HTTP client connection adapter for writing HTML forms. - [FormWriter::Part](https://auscaster.com/icey/docs/api-reference/icy-http-FormWriter-Part.md): Individual part within a multipart form submission. - [Message](https://auscaster.com/icey/docs/api-reference/icy-http-Message.md): The base class for Request and Response. - [MultipartAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-MultipartAdapter.md): HTTP multipart encoding adapter for multipart/x-mixed-replace streaming. - [Parser](https://auscaster.com/icey/docs/api-reference/icy-http-Parser.md): HTTP request/response parser using the llhttp library. - [Parser::MessageScratch](https://auscaster.com/icey/docs/api-reference/icy-http-Parser-MessageScratch.md): The start line and headers of the message being parsed, applied to the request or response once its headers are complete - [Parser::ParseResult](https://auscaster.com/icey/docs/api-reference/icy-http-Parser-ParseResult.md): The outcome of one parse call: the bytes consumed, whether a message completed or upgraded the connection, and any error - [ParserObserver](https://auscaster.com/icey/docs/api-reference/icy-http-ParserObserver.md): Abstract observer interface for HTTP parser events. - [ProgressSignal](https://auscaster.com/icey/docs/api-reference/icy-http-ProgressSignal.md): HTTP progress signal for upload and download progress notifications. - [Request](https://auscaster.com/icey/docs/api-reference/icy-http-Request.md): HTTP request message with method, URI, headers, and optional body. - [Response](https://auscaster.com/icey/docs/api-reference/icy-http-Response.md): HTTP response message with status, reason phrase, headers, and body metadata. - [Server](https://auscaster.com/icey/docs/api-reference/icy-http-Server.md): HTTP server implementation. - [ServerConnection](https://auscaster.com/icey/docs/api-reference/icy-http-ServerConnection.md): HTTP server connection. - [ServerConnectionFactory](https://auscaster.com/icey/docs/api-reference/icy-http-ServerConnectionFactory.md): Factory for creating per-socket ServerConnection and per-request ServerResponder objects. - [ServerResponder](https://auscaster.com/icey/docs/api-reference/icy-http-ServerResponder.md): Base responder interface for handling one HTTP request on a server connection. - [StringPart](https://auscaster.com/icey/docs/api-reference/icy-http-StringPart.md): Form part backed by an in-memory string payload. - [URL](https://auscaster.com/icey/docs/api-reference/icy-http-URL.md): An RFC 3986 based URL parser. - [DateCache](https://auscaster.com/icey/docs/api-reference/icy-http-DateCache.md): Caches the formatted Date header, updated once per second. - [Method](https://auscaster.com/icey/docs/api-reference/icy-http-Method.md): HTTP request methods. - [StaticFileInfo](https://auscaster.com/icey/docs/api-reference/icy-http-StaticFileInfo.md): Metadata needed to serve a static file with HTTP validators. - [ws](https://auscaster.com/icey/docs/api-reference/icy-http-ws.md): WebSocket framing, handshakes, and connection helpers. - [ws::ConnectionAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ws-ConnectionAdapter.md): WebSocket class which belongs to an HTTP connection. - [ws::WebSocket](https://auscaster.com/icey/docs/api-reference/icy-http-ws-WebSocket.md): Standalone WebSocket class. - [ws::WebSocketAdapter](https://auscaster.com/icey/docs/api-reference/icy-http-ws-WebSocketAdapter.md): WebSocket protocol adapter for both client and server endpoints. - [ws::WebSocketException](https://auscaster.com/icey/docs/api-reference/icy-http-ws-WebSocketException.md): A WebSocket error, carrying its error code and, where one applies, the close status code. - [ws::WebSocketFramer](https://auscaster.com/icey/docs/api-reference/icy-http-ws-WebSocketFramer.md): WebSocket frame encoder/decoder and handshake validator for RFC 6455. - [JSON module](https://auscaster.com/icey/docs/api-reference/json.md): JSON serialization using nlohmann/json. - [json](https://auscaster.com/icey/docs/api-reference/icy-json.md): JSON value aliases, serialization helpers, and file utilities built on nlohmann/json. - [Configuration](https://auscaster.com/icey/docs/api-reference/icy-json-Configuration.md): JSON configuration file See base Configuration for all accessors - [ISerializable](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md): Abstract interface for JSON-serializable objects. - [Pacm module](https://auscaster.com/icey/docs/api-reference/pacm.md): Package manager for distributing and installing packaged extensions and assets. - [pacm](https://auscaster.com/icey/docs/api-reference/icy-pacm.md): Package manifests, install tasks, and repository management helpers. - [InstallMonitor](https://auscaster.com/icey/docs/api-reference/icy-pacm-InstallMonitor.md): Aggregates multiple install tasks and reports overall progress. - [InstallTask](https://auscaster.com/icey/docs/api-reference/icy-pacm-InstallTask.md): Downloads, extracts, and finalizes a single package installation. - [PackageManager](https://auscaster.com/icey/docs/api-reference/icy-pacm-PackageManager.md): Loads package manifests and coordinates install, update, and uninstall workflows. - [PackageManager::Options](https://auscaster.com/icey/docs/api-reference/icy-pacm-PackageManager-Options.md): Startup configuration for repository endpoints, credentials, and directories. - [InstallationState](https://auscaster.com/icey/docs/api-reference/icy-pacm-InstallationState.md): State machine states for package installation. - [InstallOptions](https://auscaster.com/icey/docs/api-reference/icy-pacm-InstallOptions.md): Package installation options. - [LocalPackage](https://auscaster.com/icey/docs/api-reference/icy-pacm-LocalPackage.md): Package metadata for an installed package on the local filesystem. - [LocalPackage::Manifest](https://auscaster.com/icey/docs/api-reference/icy-pacm-LocalPackage-Manifest.md): Manifest of installed files recorded for a local package. - [Package](https://auscaster.com/icey/docs/api-reference/icy-pacm-Package.md): JSON-backed package metadata shared by local and remote package records. - [Package::Asset](https://auscaster.com/icey/docs/api-reference/icy-pacm-Package-Asset.md): Archive asset metadata for a specific package build. - [Package::Extension](https://auscaster.com/icey/docs/api-reference/icy-pacm-Package-Extension.md): Optional extension metadata that describes how a packaged runtime unit is loaded. - [PackagePair](https://auscaster.com/icey/docs/api-reference/icy-pacm-PackagePair.md): Pairing of the installed and remote metadata for the same package ID. - [RemotePackage](https://auscaster.com/icey/docs/api-reference/icy-pacm-RemotePackage.md): Package metadata loaded from the remote package index. - [TURN module (rfc5766)](https://auscaster.com/icey/docs/api-reference/turn.md): The turn module contains TURN (rfc5766) client and server implementations. - [turn](https://auscaster.com/icey/docs/api-reference/icy-turn.md): TURN allocation identity types and transport helpers. - [Client](https://auscaster.com/icey/docs/api-reference/icy-turn-Client.md): TURN client that manages relay allocations, permissions, and data relay via RFC 5766. - [Client::Options](https://auscaster.com/icey/docs/api-reference/icy-turn-Client-Options.md): Configuration options for the TURN client. - [FiveTuple](https://auscaster.com/icey/docs/api-reference/icy-turn-FiveTuple.md): TURN allocation identity tuple: client remote address, server local address, and transport protocol. - [IAllocation](https://auscaster.com/icey/docs/api-reference/icy-turn-IAllocation.md): Base class for TURN relay allocations shared by client and server flows. - [PermissionPolicy](https://auscaster.com/icey/docs/api-reference/icy-turn-PermissionPolicy.md): Lightweight server-side TURN permission policy. - [Request](https://auscaster.com/icey/docs/api-reference/icy-turn-Request.md): A STUN message annotated with the transport type and source/destination addresses needed for server-side routing and res - [Server](https://auscaster.com/icey/docs/api-reference/icy-turn-Server.md): TURN server RFC 5766 / RFC 6062 implementation. - [ServerAllocation](https://auscaster.com/icey/docs/api-reference/icy-turn-ServerAllocation.md): Server-side TURN allocation that tracks permissions, lifetime, and relay state. - [TCPAllocation](https://auscaster.com/icey/docs/api-reference/icy-turn-TCPAllocation.md): Server-side TCP TURN allocation with connection pair management per RFC 6062. - [TCPClient](https://auscaster.com/icey/docs/api-reference/icy-turn-TCPClient.md): TCP transport TURN client with relay connection management per RFC 6062. - [TCPConnectionPair](https://auscaster.com/icey/docs/api-reference/icy-turn-TCPConnectionPair.md): Paired TCP connections forming a single TURN relay pipe between a client and a peer. - [UDPAllocation](https://auscaster.com/icey/docs/api-reference/icy-turn-UDPAllocation.md): Server-side UDP TURN allocation that relays datagrams to permitted peers. - [UDPClient](https://auscaster.com/icey/docs/api-reference/icy-turn-UDPClient.md): UDP transport TURN client for datagram-based relay allocations. - [ClientObserver](https://auscaster.com/icey/docs/api-reference/icy-turn-ClientObserver.md): Abstract observer interface for TURN client events. - [ClientState](https://auscaster.com/icey/docs/api-reference/icy-turn-ClientState.md): State machine states for the TURN client. - [Permission](https://auscaster.com/icey/docs/api-reference/icy-turn-Permission.md): A single TURN permission entry associating a peer IP with a 5-minute expiry timer. - [Permission::Key](https://auscaster.com/icey/docs/api-reference/icy-turn-Permission-Key.md): The peer IP address a permission covers, as its address family and raw bytes. - [RelayConnectionBinding](https://auscaster.com/icey/docs/api-reference/icy-turn-RelayConnectionBinding.md): Binding metadata stored as socket opaque data during a ConnectionBind handshake. - [ServerObserver](https://auscaster.com/icey/docs/api-reference/icy-turn-ServerObserver.md): Observer interface that the application must implement to participate in server-side allocation management and authentication. - [ServerOptions](https://auscaster.com/icey/docs/api-reference/icy-turn-ServerOptions.md): Configuration options for the TURN server. - [TCPClientObserver](https://auscaster.com/icey/docs/api-reference/icy-turn-TCPClientObserver.md): Observer interface for TCP TURN client events (RFC 6062). - [STUN module (rfc5389)](https://auscaster.com/icey/docs/api-reference/stun.md): The stun module contains a STUN (rfc5389) implementation. - [stun](https://auscaster.com/icey/docs/api-reference/icy-stun.md): STUN messages, attributes, and transaction helpers defined by RFC 5389. - [AddressAttribute](https://auscaster.com/icey/docs/api-reference/icy-stun-AddressAttribute.md): Implements a STUN/TURN attribute that contains a socket address. - [Attribute](https://auscaster.com/icey/docs/api-reference/icy-stun-Attribute.md): The virtual base class for all STUN/TURN attributes. - [ErrorCode](https://auscaster.com/icey/docs/api-reference/icy-stun-ErrorCode.md): Implements the STUN ERROR-CODE attribute (RFC 5389 section 15.6). - [FlagAttribute](https://auscaster.com/icey/docs/api-reference/icy-stun-FlagAttribute.md): Implements a zero-length STUN/TURN flag attribute (presence implies the flag is set). - [Message](https://auscaster.com/icey/docs/api-reference/icy-stun-Message.md): STUN/TURN protocol message with method, class, transaction ID, and attributes. - [MessageIntegrity](https://auscaster.com/icey/docs/api-reference/icy-stun-MessageIntegrity.md): Implements the STUN MESSAGE-INTEGRITY attribute (RFC 5389 section 15.4). - [StringAttribute](https://auscaster.com/icey/docs/api-reference/icy-stun-StringAttribute.md): Implements a STUN/TURN attribute that holds an arbitrary byte string. - [Transaction](https://auscaster.com/icey/docs/api-reference/icy-stun-Transaction.md): STUN request/response transaction with timeout and retry logic. - [UInt16ListAttribute](https://auscaster.com/icey/docs/api-reference/icy-stun-UInt16ListAttribute.md): Implements a STUN/TURN attribute that holds a list of attribute type codes. - [UInt32Attribute](https://auscaster.com/icey/docs/api-reference/icy-stun-UInt32Attribute.md): Implements a STUN/TURN attribute that holds a 32-bit integer. - [UInt64Attribute](https://auscaster.com/icey/docs/api-reference/icy-stun-UInt64Attribute.md): Implements a STUN/TURN attribute that holds a 64-bit integer. - [UInt8Attribute](https://auscaster.com/icey/docs/api-reference/icy-stun-UInt8Attribute.md): Implements a STUN/TURN attribute that holds an 8-bit integer. - [Archive module](https://auscaster.com/icey/docs/api-reference/archo.md): Archive and ZIP file handling. - [archo](https://auscaster.com/icey/docs/api-reference/icy-archo.md): ZIP archive handling utilities and related helpers. - [ZipFile](https://auscaster.com/icey/docs/api-reference/icy-archo-ZipFile.md): ZIP archive reader and writer. - [ZipFile::FileInfo](https://auscaster.com/icey/docs/api-reference/icy-archo-ZipFile-FileInfo.md): Metadata for a file entry within a ZIP archive. - [Graft module](https://auscaster.com/icey/docs/api-reference/graft.md): Native ABI contracts and runtime loading helpers. - [Sched module](https://auscaster.com/icey/docs/api-reference/sched.md): Task scheduler for deferred and periodic jobs. - [sched](https://auscaster.com/icey/docs/api-reference/icy-sched.md): Deferred and periodic job scheduling primitives. - [Scheduler](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md): The Scheduler manages and runs tasks that need to be executed at specific tim - [Task](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md): Scheduled task with an attached trigger and scheduler association. - [TaskFactory](https://auscaster.com/icey/docs/api-reference/icy-sched-TaskFactory.md): The TaskFactory can dynamically instantiate registered sched::Task and sched::Trigger classes from named strings. - [DailyTrigger](https://auscaster.com/icey/docs/api-reference/icy-sched-DailyTrigger.md): Trigger that fires once per day at a configured time, with optional day-of-week exclusions. - [IntervalTrigger](https://auscaster.com/icey/docs/api-reference/icy-sched-IntervalTrigger.md): Trigger that fires repeatedly at a fixed time interval. - [OnceOnlyTrigger](https://auscaster.com/icey/docs/api-reference/icy-sched-OnceOnlyTrigger.md): Trigger that fires exactly once at the scheduled time and then expires. - [Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md): Base class for scheduled task triggers that determine when a task should run. - [Crypto module](https://auscaster.com/icey/docs/api-reference/crypto.md): Cryptographic operations; hashing, HMAC, RSA, X509 certificates. - [crypto](https://auscaster.com/icey/docs/api-reference/icy-crypto.md): Cryptographic primitives, key helpers, and certificate utilities backed by OpenSSL. - [Cipher](https://auscaster.com/icey/docs/api-reference/icy-crypto-Cipher.md): Provides symmetric algorithms for encryption and decryption. - [Hash](https://auscaster.com/icey/docs/api-reference/icy-crypto-Hash.md): Incremental cryptographic hash engine wrapping OpenSSL EVP digest functions. - [X509Certificate](https://auscaster.com/icey/docs/api-reference/icy-crypto-X509Certificate.md): RAII wrapper for an OpenSSL X509 certificate with PEM loading and inspection. - [Speech module](https://auscaster.com/icey/docs/api-reference/speech.md): Audio intelligence primitives for decoded media streams. - [speech](https://auscaster.com/icey/docs/api-reference/icy-speech.md): Voice activity detection over decoded audio, reported as speech events. - [SpeechQueue](https://auscaster.com/icey/docs/api-reference/icy-speech-SpeechQueue.md): Async queue for decoded audio packets. - [VoiceActivityDetector](https://auscaster.com/icey/docs/api-reference/icy-speech-VoiceActivityDetector.md): Detects speech in decoded audio by its energy and emits speech:start, speech:update and speech:end events. - [VoiceActivityDetector::Levels](https://auscaster.com/icey/docs/api-reference/icy-speech-VoiceActivityDetector-Levels.md): The mean absolute level and the peak measured from one packet. - [AudioRef](https://auscaster.com/icey/docs/api-reference/icy-speech-AudioRef.md): The audio packet an event refers to: its sequence, timing and sample format. - [SpeechEvent](https://auscaster.com/icey/docs/api-reference/icy-speech-SpeechEvent.md): A speech:start, speech:update or speech:end event, with the source, detector, audio and signal levels that produced it. - [VoiceActivityDetectorConfig](https://auscaster.com/icey/docs/api-reference/icy-speech-VoiceActivityDetectorConfig.md): Settings for a VoiceActivityDetector: the source it reports for, - [VoiceActivityDetectorStats](https://auscaster.com/icey/docs/api-reference/icy-speech-VoiceActivityDetectorStats.md): Counts of packets seen and events emitted, whether speech is active, and the last measured levels. - [Symple module](https://auscaster.com/icey/docs/api-reference/symple.md): Realtime messaging protocol for presence, rooms, and WebRTC signalling. - [smpl](https://auscaster.com/icey/docs/api-reference/icy-smpl.md): Symple protocol messages, peers, client, and server helpers. - [Client](https://auscaster.com/icey/docs/api-reference/icy-smpl-Client.md): Symple v4 client. - [Client::ClientData](https://auscaster.com/icey/docs/api-reference/icy-smpl-Client-ClientData.md): The client's private state: its options, loop, WebSocket connection, roster, rooms and reconnect timer. - [Client::Options](https://auscaster.com/icey/docs/api-reference/icy-smpl-Client-Options.md): Connection and authentication options for the Symple client. - [Command](https://auscaster.com/icey/docs/api-reference/icy-smpl-Command.md): Symple command message with a node path and action verb. - [Event](https://auscaster.com/icey/docs/api-reference/icy-smpl-Event.md): Symple event message carrying a named occurrence with a timestamp. - [Form](https://auscaster.com/icey/docs/api-reference/icy-smpl-Form.md): Interactive form with pages, sections, and fields for command data exchange. - [FormElement](https://auscaster.com/icey/docs/api-reference/icy-smpl-FormElement.md): Base element within a Symple form. - [FormField](https://auscaster.com/icey/docs/api-reference/icy-smpl-FormField.md): Form input field with typed values and selectable options. - [Message](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md): Base Symple protocol message with addressing, status, data, and notes. - [Peer](https://auscaster.com/icey/docs/api-reference/icy-smpl-Peer.md): Symple peer record containing identity, presence, and custom fields. - [Presence](https://auscaster.com/icey/docs/api-reference/icy-smpl-Presence.md): Symple presence message indicating a peer's online status. - [Roster](https://auscaster.com/icey/docs/api-reference/icy-smpl-Roster.md): The Roster provides a registry for active network peers indexed by session ID. - [Server](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server.md): Symple v4 server. - [Server::PeerRegistry](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-PeerRegistry.md): The server's connected and virtual peers, found by peer ID or by connection. - [Server::RoomIndex](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-RoomIndex.md): Room membership by peer ID, and the recipients of a message sent to a set of rooms. - [Server::Options](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-Options.md): Configuration options for the Symple server. - [Server::RoutingPolicy](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-RoutingPolicy.md): Who may message whom: a direct message needs a room the sender and recipient share, and a room broadcast needs the sende - [Server::VirtualPeer](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-VirtualPeer.md): A peer added with addVirtualPeer: present in its rooms like any peer, with messages delivered to its handler instead of - [ServerPeer](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md): Per-connection state for a connected Symple peer. - [Address](https://auscaster.com/icey/docs/api-reference/icy-smpl-Address.md): The Address structure is an endpoint identifier for a peer on the network. - [ClientState](https://auscaster.com/icey/docs/api-reference/icy-smpl-ClientState.md): Client connection states. - [Vision module](https://auscaster.com/icey/docs/api-reference/vision.md): Video intelligence primitives for sampled frame processing and event output. - [vision](https://auscaster.com/icey/docs/api-reference/icy-vision.md): Video analysis for decoded frames: sampling, normalising and detecting, with results reported as vision events. - [DetectionQueue](https://auscaster.com/icey/docs/api-reference/icy-vision-DetectionQueue.md): Async queue for normalized detector-ready frames. - [Detector](https://auscaster.com/icey/docs/api-reference/icy-vision-Detector.md): Base interface for detectors that consume normalized vision frames. - [FrameNormalizer](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameNormalizer.md): Converts sampled decoded video into owned detector-ready frames. - [FrameSampler](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameSampler.md): PacketProcessor that forwards a sampled subset of decoded video frames. - [MotionDetector](https://auscaster.com/icey/docs/api-reference/icy-vision-MotionDetector.md): Detects motion by comparing each frame with the previous one on a coarse grid, and emits a detect event when the change - [VisionEventEmitter](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionEventEmitter.md): Emits vision events to the listeners on its Event signal. - [Detection](https://auscaster.com/icey/docs/api-reference/icy-vision-Detection.md): Something a detector found in one frame: its label, confidence and region, and the track it belongs to when one is known - [FrameNormalizerConfig](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameNormalizerConfig.md): The frames a FrameNormalizer produces: their source and stream IDs, size and pixel format. - [FrameNormalizerStats](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameNormalizerStats.md): Counts of frames seen, emitted, dropped and converted. - [FrameSamplerConfig](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameSamplerConfig.md): Which frames a FrameSampler forwards: every Nth frame, and no two closer - [FrameSamplerStats](https://auscaster.com/icey/docs/api-reference/icy-vision-FrameSamplerStats.md): Counts of frames seen, forwarded and dropped. - [MotionDetectorConfig](https://auscaster.com/icey/docs/api-reference/icy-vision-MotionDetectorConfig.md): Settings for a MotionDetector: the grid each frame is reduced to, the f - [MotionDetectorStats](https://auscaster.com/icey/docs/api-reference/icy-vision-MotionDetectorStats.md): Counts of frames seen and events emitted, and the last motion score. - [Region](https://auscaster.com/icey/docs/api-reference/icy-vision-Region.md): A rectangle within a frame, in coordinates normalised from 0 to 1. - [Track](https://auscaster.com/icey/docs/api-reference/icy-vision-Track.md): An object followed across frames: its track ID, label, confidence and region. - [VisionEvent](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionEvent.md): A detector's report on one frame, with its detections and tracks, in the vision.event.v1 schema. - [VisionFrameContext](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionFrameContext.md): The frame a result refers to: its source and stream, frame ID, timing, size, pixel format and whether it is a keyframe. - [VisionFramePacket](https://auscaster.com/icey/docs/api-reference/icy-vision-VisionFramePacket.md): Owned detector-ready frame buffer carrying stable frame metadata. - [WebRTC module](https://auscaster.com/icey/docs/api-reference/webrtc.md): WebRTC media transport via libdatachannel; peer sessions, media bridge, codec negotiation. - [SignallingInterface](https://auscaster.com/icey/docs/api-reference/icy-wrtc-SignallingInterface.md): Transport-agnostic signalling interface for WebRTC session setup. - [MediaBridge](https://auscaster.com/icey/docs/api-reference/icy-wrtc-MediaBridge.md): Convenience wrapper that creates WebRTC tracks on a PeerConnection and exposes per-track sender/receiver adapters for PacketStream integration. - [MediaBridge::Options](https://auscaster.com/icey/docs/api-reference/icy-wrtc-MediaBridge-Options.md): Configuration options for the WebRTC media bridge. - [PeerSession](https://auscaster.com/icey/docs/api-reference/icy-wrtc-PeerSession.md): Manages a WebRTC peer connection lifecycle over any signalling transport that implements SignallingInterface. - [PeerSession::CallbackGuard](https://auscaster.com/icey/docs/api-reference/icy-wrtc-PeerSession-CallbackGuard.md): Shared with queued callbacks, so one that runs after the session is destroyed does nothing. - [PeerSession::Config](https://auscaster.com/icey/docs/api-reference/icy-wrtc-PeerSession-Config.md): Configuration for WebRTC peer session establishment. - [PeerSession::MediaConfig](https://auscaster.com/icey/docs/api-reference/icy-wrtc-PeerSession-MediaConfig.md): Configuration for WebRTC peer session establishment. - [PeerSession::PendingCandidate](https://auscaster.com/icey/docs/api-reference/icy-wrtc-PeerSession-PendingCandidate.md): A remote ICE candidate that arrived before the remote description, applied once that description is set. - [WebRtcTrackSender](https://auscaster.com/icey/docs/api-reference/icy-wrtc-WebRtcTrackSender.md): PacketProcessor that sends encoded media to a single libdatachannel Track via sendFrame(). - [WebRtcTrackReceiver](https://auscaster.com/icey/docs/api-reference/icy-wrtc-WebRtcTrackReceiver.md): PacketStreamAdapter that receives depacketized frames from a single remote libdatachannel Track and emits them as VideoPacket or AudioPacket into a PacketStream. - [WebRtcTrackReceiver::DispatchState](https://auscaster.com/icey/docs/api-reference/icy-wrtc-WebRtcTrackReceiver-DispatchState.md): State shared with track callbacks. - [CodecNegotiator](https://auscaster.com/icey/docs/api-reference/icy-wrtc-CodecNegotiator.md): Maps RTP codec names to FFmpeg encoders and queries FFmpeg at runtime to determine what codecs are available. - [TrackHandle](https://auscaster.com/icey/docs/api-reference/icy-wrtc-TrackHandle.md): Result of creating a track: the track itself plus its RTP config. - [JitterBufferConfig](https://auscaster.com/icey/docs/api-reference/icy-wrtc-JitterBufferConfig.md): Receive-side jitter buffer behaviour for depacketized WebRTC media frames. - [CodecSpec](https://auscaster.com/icey/docs/api-reference/icy-wrtc-CodecSpec.md): Canonical description of a codec supported by icey's WebRTC helpers. - [NegotiatedCodec](https://auscaster.com/icey/docs/api-reference/icy-wrtc-NegotiatedCodec.md): Result of codec negotiation between a remote SDP offer and the local FFmpeg codec inventory. - [Graft C ABI primitives](https://auscaster.com/icey/docs/api-reference/graftabi.md): C-compatible manifest and export conventions shared by plugin-in and host-out graft surfaces. - [icy_graft_manifest](https://auscaster.com/icey/docs/api-reference/icy_graft_manifest.md): What a graft plugin exports under ICY_GRAFT_PLUGIN_MANIFEST_SYMBOL: its ABI version, file name, ID, name, version, runti - [WebRTC support helpers](https://auscaster.com/icey/docs/api-reference/webrtcsupport.md): Shared signalling helpers and sample/app adapters layered on top of the core WebRTC module. - [WebSocketSignaller](https://auscaster.com/icey/docs/api-reference/icy-wrtc-WebSocketSignaller.md): SignallingInterface implementation using plain JSON over WebSocket. - [SympleSignaller](https://auscaster.com/icey/docs/api-reference/icy-wrtc-SympleSignaller.md): SignallingInterface implementation using the Symple call protocol. - [SympleServerSignaller](https://auscaster.com/icey/docs/api-reference/icy-wrtc-SympleServerSignaller.md): Server-side Symple signaller for virtual peers and embedded apps. - [SympleServerSignaller::OutboundMessage](https://auscaster.com/icey/docs/api-reference/icy-wrtc-SympleServerSignaller-OutboundMessage.md): A message sent from another thread, queued with its peer address and sent on the server's loop. - [Graft host pipeline C surface](https://auscaster.com/icey/docs/api-reference/grafthostpipeline.md): Narrow host-exported C ABI for the first Rust-facing pipeline surface. - [icy_pipeline_options](https://auscaster.com/icey/docs/api-reference/icy_pipeline_options.md): Options for icy_pipeline_api.create: the pipelin - [icy_pipeline_api](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md): The pipeline host API returned by icy_pipeline_api(): create a pipeline, attach an - [Signal](https://auscaster.com/icey/docs/api-reference/icy-Signal.md): Signal and slots implementation. - [Library](https://auscaster.com/icey/docs/api-reference/icy-graft-Library.md): Loads a native plugin library and resolves its typed entrypoint. - [Manifest](https://auscaster.com/icey/docs/api-reference/icy-graft-Manifest.md): Metadata exported by a plugin or host surface. - [proto::Welcome](https://auscaster.com/icey/docs/api-reference/icy-smpl-proto-Welcome.md): The server's welcome on connect: its status and message, the client's own peer record and the rooms it is in. - [callproto::ParsedMessage](https://auscaster.com/icey/docs/api-reference/icy-wrtc-callproto-ParsedMessage.md): A call signalling message read from a Symple message: its kind, peer address and action, with the SDP, ICE candidate or - [codec_registry::Entry](https://auscaster.com/icey/docs/api-reference/icy-wrtc-codec_registry-Entry.md): A codec the registry knows: its RTP codec spec and, in FFmpeg builds, the decoder that reads it. - [Globals](https://auscaster.com/icey/docs/api-reference/globals.md): Macros at global scope. - [API Reference](https://auscaster.com/icey/docs/api-reference.md): API reference across 20 modules. - [Base module](https://auscaster.com/icey/docs/api-reference/_sections/base-module-d3372fc6.md): Base module