Pluggable signaling transport; uninitialized memory leak fixed
livekit-ffi/v0.12.72
Fixes
- Address typo in parsing rpc server version - #1268 (@1egoman)
- Data tracks schema metadata support.
- Emit black keepalive frames from NativeVideoSource instead of uninitialized memory. webrtc::I420Buffer::Create leaves the pixel planes uninitialized, so the pre-capture keepalive frames could leak recycled heap contents (often fragments of earlier frames from the same process) to subscribers as the first keyframes - #1271 (@eh-steve)
- ensure failing audio filter init doesn't degrade audio quality - #1270 (@lukasIO)
- Add NVIDIA NVENC AV1 encoding when the GPU reports AV1 encode support.
Route LiveKit signalling through a pluggable transport (new livekit-net crate).
The signalling WebSocket and the two pre-connect HTTP GETs (validate, region discovery) now go through pluggable transport traits (WsClient for the WebSocket, HttpClient for request/response) resolved from a process-global registry with independent slots — a consumer can bring only HTTP, or only WebSocket. The new livekit-net crate owns the WebSocket/HTTP/TLS stack behind those traits and ships native (tokio / async-std) backends. Native builds are unchanged in behavior.
Breaking (livekit-api, and livekit via EngineError::Signal):
SignalError::WsErroris removed —tungsteniteis no longer part of the public API. A failed WebSocket handshake now surfaces its HTTP status asSignalError::Client/Server; transport connection and close failures surface as the newSignalError::Connection(String)/SignalError::Closedvariants (previously all collapsed intoTimeout).SignalErroris now#[non_exhaustive], and gains aSignalError::TransportNotConfiguredvariant — returned when no transport is registered (host/foreign builds must calllivekit_net::set_ws_client/set_http_clientbefore connecting). This is a permanent configuration error; callers must not retry.- The signalling WebSocket/HTTP/TLS crates are no longer transitive dependencies of
livekit-api; TLS features delegate tolivekit-net. Existingsignal-client-tokio/-async/-dispatcherand TLS feature names are unchanged.
Fetched July 28, 2026

