Releases: livekit/client-sdk-cpp
Releases · livekit/client-sdk-cpp
v1.0.0
What's Changed
- Room stats API by @alan-george-lk in #138
- ISSUE_TEMPLATE by @stephen-derosa in #147
- Room disconnect issue fix by @alan-george-lk in #146
- Breaking changes: remove deprecated code, return weak_ptr instead of raw, remove unused LogSink enum. More targetted docs. by @stephen-derosa and @alan-george-lk in #143
Full Changelog: v0.4.1...v1.0.0-rc
Public Breaking Changes
-
Removed the entire
livekit_bridgelibrary/API:liblivekit_bridge/ bridge CMake targetbridge/source, headers, tests, and README
-
Removed
TrackSource-keyed frame callback APIs:Room::setOnAudioFrameCallback(participant_identity, TrackSource, ...)Room::setOnVideoFrameCallback(participant_identity, TrackSource, ...)Room::clearOnAudioFrameCallback(participant_identity, TrackSource)Room::clearOnVideoFrameCallback(participant_identity, TrackSource)- Matching
SubscriptionThreadDispatcheroverloads
-
Removed deprecated SDK functions:
Room::ConnectRoom::room_infoAudioFrame::total_samples,sample_rate,num_channels,samples_per_channel,to_stringAudioSource::sample_rate,num_channels,ffi_handle_idParticipant::set_name,set_metadata,set_attributes,set_attribute,remove_attribute,set_kind,set_disconnect_reasonTrack::stream_state,mime_type,has_handle,ffi_handle_idResult::has_errorLocalAudioTrack::to_stringLocalVideoTrack::to_stringRemoteAudioTrack::to_stringRemoteVideoTrack::to_stringRemoteParticipant::to_stringVideoSource::ffi_handle_id
-
Signature changes:
- All method/function styling is now
camelBack()case. Prior violations of this were simply renamed, e.g.Connect()->connect(), androom_info->roomInfo() Room::e2eeManager()now returns a weak_ptrRoom::localParticipant()now returns a weak_ptrRoom:remoteParticipant()now returns a weak_ptrE2EEManager::keyProvider()now returns a weak_ptrlivekit::initialize()removed second argument and theLogSinkentirely. This was done to future proof releases. This was not decided lightly and was a result of the extensive log forwarding investigation done and minimizing breaking changes beyondv1.0.0. Context:LogSinkenum was not working as expected. If set tokCallback, it would enable FFIcapture_logs, but no support existed in the FFI client to handle those events. So functionally,kCallbackwould silently disable all Rust logs (never would reach console out or callbacks of any kind). Additionally, setting this value tokCallbackwouldn't actually forward logs to the user lambda. That only works vialivekit::setLoggingCallback
- All method/function styling is now
v1.0.0-rc
What's Changed
- Room stats API by @alan-george-lk in #138
- ISSUE_TEMPLATE by @stephen-derosa in #147
- Room disconnect issue fix by @alan-george-lk in #146
- Breaking changes: remove deprecated code, return weak_ptr instead of raw, remove unused LogSink enum. More targetted docs. by @stephen-derosa and @alan-george-lk in #143
Full Changelog: v0.4.1...v1.0.0-rc
Public Breaking Changes
-
Removed the entire
livekit_bridgelibrary/API:liblivekit_bridge/ bridge CMake targetbridge/source, headers, tests, and README
-
Removed
TrackSource-keyed frame callback APIs:Room::setOnAudioFrameCallback(participant_identity, TrackSource, ...)Room::setOnVideoFrameCallback(participant_identity, TrackSource, ...)Room::clearOnAudioFrameCallback(participant_identity, TrackSource)Room::clearOnVideoFrameCallback(participant_identity, TrackSource)- Matching
SubscriptionThreadDispatcheroverloads
-
Removed deprecated SDK functions:
Room::ConnectRoom::room_infoAudioFrame::total_samples,sample_rate,num_channels,samples_per_channel,to_stringAudioSource::sample_rate,num_channels,ffi_handle_idParticipant::set_name,set_metadata,set_attributes,set_attribute,remove_attribute,set_kind,set_disconnect_reasonTrack::stream_state,mime_type,has_handle,ffi_handle_idResult::has_errorLocalAudioTrack::to_stringLocalVideoTrack::to_stringRemoteAudioTrack::to_stringRemoteVideoTrack::to_stringRemoteParticipant::to_stringVideoSource::ffi_handle_id
-
Signature changes:
Room::e2eeManager()now returns a weak_ptrRoom::localParticipant()now returns a weak_ptrRoom:remoteParticipant()now returns a weak_ptrE2EEManager::keyProvider()now returns a weak_ptrlivekit::initialize()removed second argument and theLogSinkentirely. This was done to future proof releases. This was not decided lightly and was a result of the extensive log forwarding investigation done in #133 and upcomingv1.0.0breaking changes anyways.LogSinkenum was not working as expected. If set tokCallback, it would enable FFIcapture_logs, but no support existed in the FFI client to handle those events. So functionally,kCallbackwould silently disable all Rust logs (never would reach console out or callbacks of any kind). Additionally, setting this value tokCallbackwouldn't actually forward logs to the user lambda. That only works vialivekit::setLoggingCallback
v0.4.1
What's Changed
- Latest examples that match new method signature by @alan-george-lk in #141
- Doxygen second pass: coverage, improvements, fixes, etc. by @alan-george-lk in #142
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- Remove registration of video/audio callbacks based on TrackSource by @stephen-derosa in #110
- Benchmarks: Data tracks throughput by @stephen-derosa in #111
- CODEOWNERS, update cpp-example-collection hash by @stephen-derosa in #115
- Integration tests in CI by @alan-george-lk in #113
- clang-format in CI by @alan-george-lk in #116
- BugFix: Bot-343, DataTracks return from subscribe() and read() from rust sdk by @stephen-derosa in #119
- Visibility controls on public API by @alan-george-lk in #121
- Add code coverage reporting by @alan-george-lk in #101
- Fix/guard connection state by @siddimore in #114
- Fix e2ee defaults masked in release builds by @stephen-derosa in #126
- Proper reporting of rust version based on git commit hash - build-info by @stephen-derosa in #123
- Fix visibility for RPC by @stephen-derosa in #129
- Adjust result.h error condition behavior by @alan-george-lk in #128
- FfiClient state guarding, additional testing coverage by @alan-george-lk in #125
- Events Being Dropped on Connection by @stephen-derosa in #122
- Unified method style by @alan-george-lk in #127
- DataTrackStreamReadResponse has optional DataTrackStreamEOS field by @stephen-derosa in #130
- Fix race in event_tracer/repeat unit tests by @alan-george-lk in #139
- CI/CD: Enable integration tests on mac by @stephen-derosa in #136
- Documentation cleanup: initial pass by @alan-george-lk in #135
Deprecation Announcements
- All public functions and methods now follow
camelBack()case. Previous methods still exist in this version of the SDK, but will be removed in the next major release.
Full Changelog: v0.3.4...v0.4.0
v0.3.4
What's Changed
- Support for compile_commands.json/clangd by @alan-george-lk in #87
- GHA Docker: set cpp-examples-collection to latest commit by @stephen-derosa in #90
- Move all examples to cpp-example-collection by @stephen-derosa in #83
- docker base image for faster builds by @stephen-derosa in #92
- fix the RPC tests by @xianshijing-lk in #95
- enable single peer connection as default by @xianshijing-lk in #94
- Running unit tests in CI by @alan-george-lk in #89
- Implement Chromium tracing in SDK and some benchmark code under tests by @xianshijing-lk in #85
- Update GitHub Actions to Node.js 24 compatible versions by @alan-george-lk in #100
- rm bridge on 06/01/2026 by @stephen-derosa in #106
- Minor fix change to copy semantics for const shared_ptr since it has … by @siddimore in #104
- AGENTS.md by @stephen-derosa in #91
- Add clang-tidy support by @alan-george-lk in #97
- VideoFrames FrameMetadata by @stephen-derosa in #80
- Other minor fixes to remove unused headers and correct some comments by @siddimore in #108
- update client-sdk-rust commit to include DataTrack extension encoding fix @stephen-derosa in #112
New Contributors
- @alan-george-lk made their first contribution in #87
- @siddimore made their first contribution in #104
Deprecation Announcements
bridge/ on 06/01
Full Changelog: v0.3.3...v0.3.4
v0.3.3
v0.3.2
What's Changed
- Data Tracks tracks support @stephen-derosa in #66 (docs, blog post)
- use a real LLM response and save it to data_rpc_test_data.txt by @xianshijing-lk in #54
- Sxian/clt 2553/add connection and audio latency tests by @xianshijing-lk in #56
- adding single peer connection support by @xianshijing-lk in #57
- LK_LOG_* using spdlog, supporting users specifying their own logging … by @stephen-derosa in #68
- Dockerfile by @stephen-derosa in #69
- add some more RPC stress tests and audio latency tests by @xianshijing-lk in #74
New Contributors
- @ladvoc made their first contribution in #62
- @haffi96 made their first contribution in #60
- @stephen-derosa made their first contribution in #58
- @krazyjakee made their first contribution in #71
Full changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
- add workflow to generate the docs and upload the docs by @xianshijing-lk in #48
- Sxian/bot 209/fix publish docs bot by @xianshijing-lk in #50
- added the test infra using gtest, and some tests by @xianshijing-lk in #49
- fix the docs job by @xianshijing-lk in #51
- fix and improve the cpp docs home page and readme by @xianshijing-lk in #52
- expose APM module to C++ by @xianshijing-lk in #53
Full Changelog: v0.2.7...v0.3.1
v0.3.0
What's Changed
- add workflow to generate the docs and upload the docs by @xianshijing-lk in #48
- Sxian/bot 209/fix publish docs bot by @xianshijing-lk in #50
- added the test infra using gtest, and some tests by @xianshijing-lk in #49
- fix the docs job by @xianshijing-lk in #51
Full Changelog: v0.2.7...v0.3.0
v0.2.9
What's Changed
- add workflow to generate the docs and upload the docs by @xianshijing-lk in #48
- Sxian/bot 209/fix publish docs bot by @xianshijing-lk in #50
Full Changelog: v0.2.7...v0.2.9