Repository navigation
Update "rust-sdks" to livekit-ffi/v0.13.4 - #148
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
sync-rust-sdks/v0.13.4
branch
from
November 5, 2026 10:31
9c699fd to
fa39ef2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates
LivekitRtc/rust-sdksfromlivekit-ffi/v0.13.3βlivekit-ffi/v0.13.4(13 upstream commits).This bump changes only the native library. Upstream changed no
.protofile underlivekit-ffi/protocol: regenerating the protos gives byte-identicalLivekitRtc/Proto/*.g.csandLivekitApi/proto. The FFI surface is the same as before (ffi_coverage.pyoutput is identical before and after), so there is no new public API and no breaking change. The upgrade brings native fixes and behavior changes that .NET users will notice. They are listed in the changelog.Changes
LivekitRtc/rust-sdksede8ac5β88705b1(livekit-ffi/v0.13.4)win-x64,win-arm64,linux-x64,linux-arm64,osx-x64,osx-arm64generate_proto.shLivekitRtc/README.md(the build-from-source example now nameslivekit-ffi/v0.13.4; the Rust toolchain is still 1.97.1),LivekitRtc/CHANGELOG.mdBinary verification
The workflow downloaded the six binaries before this run. I downloaded the six
ffi-*.zipassets of thelivekit-ffi/v0.13.4release again and compared SHA-256 hashes: every file inLivekitRtc/runtimes/*/native/matches its upstream asset and differs from the committed v0.13.3 binary. Upstream now builds them with LTO, which makes them 3β8 % smaller (linux-x64 28.3 MB β 26.2 MB, win-x64 25.1 MB β 24.4 MB).Changes .NET users will notice (in
LivekitRtc/CHANGELOG.mdunder## Unreleased)failed to handle requesterror line.env_loggerprints error-level logs to stderr by default, so the key of a failingKeyProvider.SetSharedKeyorSetKeycall could end up in the console or the logs (livekit-ffi: keep failed requests out of the logΒ livekit/rust-sdks#1599).TrackPublishOptions.VideoCodecthat no local encoder can produce now publishes VP8, with a native warning. Pre-encoded publishing (EncodedVideoSource) no longer needs a local encoder for its codec, so pre-encoded H.265 works on any host (jetson h265: encoder and passthrough supportΒ livekit/rust-sdks#1451).EncodedVideoFrame.Metadatano longer ends up on the wrong frame when frames share a timestamp or are captured within the same millisecond (use us for frame metadata dict key to prevent collisionsΒ livekit/rust-sdks#1607).Roomsurvives an outage of about 45 s, and no new attempt starts once reconnection has run for 60 s. A join or reconnect response timeout now closes its WebSocket (rtc_engine: match livekit-client's reconnect backoff scheduleΒ livekit/rust-sdks#1457, #1568, #1589).These upstream changes are not in the changelog because they don't affect this package: the size budgets for iOS and Android, the OSS scanner image, the
zipsecurity bump (a build-time dependency ofwebrtc-sys-build, not in the shipped library) and theoffer_to_receive_*change for single peer connection offers (this SDK does not exposesingle_peer_connection, and its default isfalse).Test results
dotnet build(solution) and the 5LivekitRtc.Example/*projectsCS0612obsolete-proto warnings)FfiClientTest,SdkVersionTests,AudioCaptureMinimalTest,*PinningTests,VideoFramePlanesTests,*MappingTests,EncodedVideoSourceTests,DataTrackFrameTests,AudioSourcePlayoutTests,AudioResamplerTests,RpcErrorTests)RoomEventsTests(Docker, includes simulated full and signal reconnects)ParticipantEventsTests(Docker)VideoPublishTests(Docker, Chrome receives the published video)E2EETests(Docker)dotnet csharpier check .dotnet docfx docs/docfx.json --warningsAsErrorsanddocs/check_api_docs.pyI captured the SDK's stderr with
LIVEKIT_TEST_STDERR_FILEfor every run. None of them hadFFI Panic,[WARN]or[ERROR]lines (including[WARN] RoomEvent.*), and the detailed stdout logs had none either.I did not run the other Docker classes (
AudioPublishTests,AudioReceiveTests,DataStreamTests,RpcTests,DataTrackTests, ...). The upstream diff doesn't touch those areas, and every class starts its own LiveKit and Chrome stack.Open decisions for the maintainer
This bump adds nothing to decide on: it has no new FFI requests, callbacks, room events or option fields, and nothing is stale. These pre-existing gaps are unchanged, and I'm only listing them for reference:
VideoSource.CaptureFramehas no frame metadata.CaptureVideoFrameRequest.metadata(Proto.FrameMetadata) exists, but onlyEncodedVideoFrameexposes it. The metadata fix in this release also covers raw frames, so the gap now matters more. Exposing it would be an optional parameter or overload.RoomOptionshas noSinglePeerConnection. The FFI'sRoomOptions.single_peer_connection(defaultfalse) is not mapped. Check the Node and Python RTC SDKs before exposing it.Unused requests and room events reported by
ffi_coverage.py, the same as on v0.13.3:SendText,SendFile,SendBytes,*StreamOpen/Write/Close, the reader requests) and their callbacks, plus theByteStreamOpenedandTextStreamOpenedroom events.GetStats,EnableRemoteTrack,Dispose.NewAudioResampler,RemixAndResample) and audio processing (NewApm,ApmProcess*,ApmSetStreamDelay,LoadAudioFilterPlugin).DefineSchemaandGetSchema.NewPlatformAudio,Get/Set*Device,Start/StopRecording,NewCaptureSource,Start/Stop/JoinCapture).ConnectionStateChangedandEosroom events.The candidates in
.claude/skills/sync-rust-sdks/scripts/coverage_ignore.txtare still commented out, waiting for a decision.Commits
Update "rust-sdks" to livekit-ffi/v0.13.4: the submodule pointer and the six binaries. The regenerated protos are unchanged, and so isgenerate_proto.sh.Adapt LivekitRtc to livekit-ffi/v0.13.4:LivekitRtc/CHANGELOG.mdandLivekitRtc/README.md.π€ Generated with Claude Code