Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
9788054
Increase default audio bitrates (#427)
davidzhao Sep 6, 2024
5acfc30
Introduce participant kind (#428)
keepingitneil Sep 6, 2024
346cc22
Bump ffi version (#429)
keepingitneil Sep 6, 2024
09f7da1
optimize AudioSource captures (#425)
theomonnom Sep 12, 2024
6b1c5ea
ffi-v0.10.0 (#432)
theomonnom Sep 12, 2024
40a1f11
remove debug logs
theomonnom Sep 12, 2024
c84f3c2
send silence frames on the AudioSource when the queue is empty (#433)
theomonnom Sep 13, 2024
1b87c1a
ffi-v0.10.2
theomonnom Sep 13, 2024
e2ad85d
add nanpa version management support (#434)
Sep 14, 2024
2e4d385
soxr-sys (#438)
theomonnom Sep 22, 2024
8fa3011
fix: resume/reconnection not working! (#440)
theomonnom Sep 23, 2024
c66f715
fix: avoid wrong reconnection logs (#441)
theomonnom Sep 24, 2024
f675ef8
fix livekit-protocol generation (#442)
theomonnom Sep 25, 2024
fc9a382
ffi-v0.10.3 (#443)
theomonnom Sep 25, 2024
3a04728
expose soxr on the ffi (#444)
theomonnom Sep 26, 2024
03a2666
free soxr resampler (#445)
theomonnom Sep 26, 2024
1ee55b1
ffi-v0.11.0 (#446)
theomonnom Sep 26, 2024
dd5cb7e
soxresampler: return nullptr when empty (#448)
theomonnom Sep 28, 2024
5bc686b
avoid reconnection logs on normal close (#449)
theomonnom Sep 30, 2024
f2fb3e5
ffi-v0.11.1 (#451)
theomonnom Oct 1, 2024
0bbaae8
Ignore unknown DataPacket types (#452)
lukasIO Oct 2, 2024
788945c
add livekit_ffi_dispose (#453)
theomonnom Oct 2, 2024
10b10c7
ffi-v0.11.2 (#454)
theomonnom Oct 2, 2024
a44934c
fix audiosource bit depth (#455)
theomonnom Oct 2, 2024
5d1f91e
ffi-v0.11.3 (#456)
theomonnom Oct 2, 2024
8afcb52
Update to livekit-protocol v1.23.0 (Stubs only), fix tests (#458)
bcherry Oct 3, 2024
ef99aad
don't drop handles on dispose (#460)
theomonnom Oct 4, 2024
8242570
ffi 0.11.4 (#468)
theomonnom Oct 9, 2024
9378fae
Avoid extra dylib dependencies (#466)
SomeoneToIgnore Oct 9, 2024
7044ba5
Add chat API (#436)
lukasIO Oct 10, 2024
0e4b983
ffi 0.11.5 (#469)
lukasIO Oct 14, 2024
e6f2164
Use proto2 syntax for FFI (#470)
lukasIO Oct 18, 2024
be76166
await transcription and dtmf handles on room close (#462)
bcherry Oct 18, 2024
3de6fa6
ffi-v0.12.0 (#472)
lukasIO Oct 21, 2024
21149a4
Add SDK version, allow override of SDK and version from FFI (#471)
bcherry Oct 23, 2024
2aa9500
RPC implementation + FFI (#461)
bcherry Oct 24, 2024
a556863
ffi: be more flexible with optional options (#474)
theomonnom Oct 25, 2024
1fbcb2c
ffi-v0.12.1
theomonnom Oct 25, 2024
bc73684
expose libwebrtc's ProhibitLibsrtpInitialization (#477)
kbalt Oct 31, 2024
e9cebf6
fix: don't overwrite the url path in twirp-client (#478)
weichweich Oct 31, 2024
91fcf57
RPC updates (#476)
bcherry Oct 31, 2024
8cb2024
ffi 0.12.2
bcherry Oct 31, 2024
a83cb99
0.7
bcherry Oct 31, 2024
31979b7
versions
bcherry Oct 31, 2024
49fb3c3
Revert "versions"
bcherry Oct 31, 2024
7180628
Revert "0.7"
bcherry Oct 31, 2024
0699735
bump rtc 0.7.0, api 0.4.1, proto 0.3.6 (#479)
bcherry Oct 31, 2024
80a36c2
fix: re-export twirp error types (#480)
Mervs Nov 11, 2024
ee5076b
Use rust::String::lossy for stringification to avoid crashing due to …
mgsloan Nov 13, 2024
3c70895
Fix dispatcher example (#484)
mikayla-maki Nov 13, 2024
c48f892
soxr: fix segfault when pushing after a flush (#486)
theomonnom Nov 14, 2024
b41861c
ffi v0.12.3
theomonnom Nov 14, 2024
fe8037a
simplify version cascading by using workspaces (#483)
Nov 20, 2024
15a5a7f
Fix carah error of get session stats request (#490)
zesun96 Nov 22, 2024
979d0c5
add adaptive streaming; (#488)
zesun96 Nov 26, 2024
21bdee2
Fix enconding presets (#464)
iparaskev Nov 26, 2024
0d92f49
Add license to `soxr-sys/Cargo.toml` (#498)
mgsloan Nov 30, 2024
755b435
Add libwebrtc/README.md explaining how to build and use it (#499)
mgsloan Nov 30, 2024
154555b
add livekit-ffi generate proto script in windows (#494)
zesun96 Nov 30, 2024
9d68b19
fix: Doc.rs Build Fails For livekit-api = 0.4.1 (#495)
tommady Nov 30, 2024
5a3a8ea
fixed ffi build for android. (#409)
cloudwebrtc Nov 30, 2024
fb1efb0
fix-livekit-ffi-build-on-ios-failure (#502)
tommady Dec 2, 2024
65a1b02
Update lib.rs
theomonnom Dec 2, 2024
c86758b
move libyuv/imgproc from theomonnom/mikado (#508)
theomonnom Dec 10, 2024
2ba0a2e
Adding disconnect reason (#507)
davidzhao Dec 10, 2024
a1b926e
chore(webrtc-sys): bump to m125_release (#505)
Dec 11, 2024
a0a961b
chore: update webrtc and all dependents (#512)
Dec 11, 2024
3f2bbb3
fix: webrtc builds on macOS, iOS (#514)
Dec 12, 2024
4a2f352
add changeset files and bump imgproc, yuv-sys (#513)
Dec 12, 2024
d15807d
fix yuv simd errors (#515)
theomonnom Dec 12, 2024
43933e5
fix unmatched codec (#516)
theomonnom Dec 12, 2024
893fe0f
fix av1 supported formats (#517)
theomonnom Dec 12, 2024
bcbc7d8
fix ffi license builds (#518)
theomonnom Dec 12, 2024
7b6141c
chore: bump webrtc-sys for new webrtc tag (#519)
Dec 12, 2024
b511e55
Update gh action versions (#520)
lukasIO Dec 14, 2024
2034345
ci: attempt to fix windows webrtc builds (#521)
Dec 14, 2024
6dbfb96
ci: fix FFI and WebRTC builds with artifacts v4 (#522)
Dec 14, 2024
627322f
ci: fix missed line (#523)
Dec 14, 2024
0d777eb
ci: fix builds again (#524)
Dec 14, 2024
0bdbe69
ci: use existing OUT variable for iOS simulator (#525)
Dec 14, 2024
d1404e7
update webrtc-sys-build/lib.rs (#526)
Dec 14, 2024
32d8618
ci: add deploy key to nanpa CI (#527)
Dec 14, 2024
a5ef23e
nanpa: bump
ilo-nanpa[bot] Dec 14, 2024
3d9168a
Add FFI events for data streams (#510)
lukasIO Dec 16, 2024
e04a3cc
Fix `play_from_disk` example to work with recent SDK (#529)
typester Dec 17, 2024
ca95b54
fix compilation error (#528)
typester Dec 17, 2024
7e01c91
fix compilation error (#530)
typester Dec 17, 2024
3b1931c
bump livekit-ffi to 0.12.4 (#536)
Dec 22, 2024
cc889da
nanpa: bump
ilo-nanpa[bot] Dec 22, 2024
8e2d312
Fix deadlocked engine in RPC (#532)
bcherry Jan 3, 2025
25dbc65
bump livekit-ffi to 0.12.5 (#541)
typester Jan 3, 2025
e0846c2
nanpa: bump
ilo-nanpa[bot] Jan 4, 2025
32a582c
Close track FFI handles automatically when a FfiRoom is closed. (#539)
typester Jan 6, 2025
c6132e8
nanpa: bump
ilo-nanpa[bot] Jan 7, 2025
5047dae
DataStream sending support and recv fixes (#533)
lukasIO Jan 8, 2025
b2a3a27
Add DataStream Trailer for livekit-ffi (#547)
typester Jan 16, 2025
50cb059
Add data_stream trailer event (#549)
lukasIO Jan 17, 2025
f162413
Make `publish_data` wait until the DataChannel's bufferedAmount becom…
typester Jan 17, 2025
3eb79a7
nanpa: bump
ilo-nanpa[bot] Jan 17, 2025
ca39260
Fix publish workflow (#550)
typester Jan 17, 2025
e96fdca
nit comment (#551)
theomonnom Jan 17, 2025
aabbd79
Update DataStream naming (#555)
lukasIO Jan 21, 2025
18a9fc8
Add nanpa changeset for #555 (#557)
lukasIO Jan 23, 2025
df4d753
nanpa: bump
ilo-nanpa[bot] Jan 23, 2025
370d2ac
Update protocol and add SendDataRequest nonce (#560)
lukasIO Jan 28, 2025
e7e93c4
update readme (#562)
davidzhao Jan 28, 2025
1d85bac
implement track permission updates (#563)
davidzhao Feb 3, 2025
e1d7093
fix package references in nanpa changeset (#564)
davidzhao Feb 3, 2025
660f70e
nanpa: bump
ilo-nanpa[bot] Feb 3, 2025
7da4bc7
Fix RPC invocation race condition (#565)
bcherry Feb 4, 2025
fabd8ed
nanpa: bump
ilo-nanpa[bot] Feb 4, 2025
4865c6c
Fix build issues (#567)
typester Feb 5, 2025
6b90ca7
nanpa: bump
ilo-nanpa[bot] Feb 5, 2025
5b264cc
webrtc-sys needs to be updated (#569)
typester Feb 5, 2025
afecf6f
nanpa: bump
ilo-nanpa[bot] Feb 5, 2025
81078e8
bump livekit-protocol (#571)
typester Feb 5, 2025
579ad43
nanpa: bump
ilo-nanpa[bot] Feb 5, 2025
3a0d67b
add a changeset for livekit (#573)
typester Feb 6, 2025
8b1bc05
nanpa: bump
ilo-nanpa[bot] Feb 6, 2025
3507dc0
update builder runner os (#578)
matkam Feb 19, 2025
e41cced
update more gh runner images (#579)
matkam Feb 20, 2025
2c627f5
fix: pass disconnect reason explicitly (#581)
davidzhao Feb 24, 2025
cbf0735
nanpa: bump
ilo-nanpa[bot] Feb 24, 2025
1d6308c
feat: Audio Filter plugin (#559)
typester Feb 28, 2025
c833df8
nanpa: bump
ilo-nanpa[bot] Feb 28, 2025
3e51cda
Fix panic in Promise::try_result (#585)
typester Mar 3, 2025
4e9a275
add changesets (#587)
typester Mar 4, 2025
de91ada
nanpa: bump
ilo-nanpa[bot] Mar 4, 2025
8e3e1b1
Fix packaging issue in livekit-ffi (#589)
typester Mar 4, 2025
7e51858
add AudioProcessingModule (#580)
theomonnom Mar 4, 2025
1383b69
ffi-v0.13.0 (#590)
theomonnom Mar 4, 2025
17186b3
bump versions (#591)
theomonnom Mar 4, 2025
ced99cf
Create bump-livekit-ffi.kdl (#592)
theomonnom Mar 4, 2025
2516aab
undo manual bump (#593)
theomonnom Mar 4, 2025
aea9f4e
nanpa: bump
ilo-nanpa[bot] Mar 4, 2025
835d610
fix libwebrtc.jar build issue (#586)
cloudwebrtc Mar 5, 2025
b509de3
Ensure RTC session continues even if audio filter initialization fail…
typester Mar 5, 2025
dde59ce
nanpa: bump
ilo-nanpa[bot] Mar 5, 2025
a11f7d2
Add a mechanism to update stream information for applied audio filter…
typester Mar 6, 2025
3aeced9
nanpa: bump
ilo-nanpa[bot] Mar 6, 2025
ff4c783
add missing with_room_config API on the access tokens (#602)
TobyPDE Mar 13, 2025
db42022
Move RPC handlers to room (#599)
typester Mar 18, 2025
e2aeb65
nanpa: bump
ilo-nanpa[bot] Mar 18, 2025
dd06b5b
Add i420_to_nv12 (#605)
ConradIrwin Mar 20, 2025
d6524ba
Revert "Move RPC handlers to room (#599)" (#606)
typester Mar 21, 2025
fdca50d
Fix minor issues (#608)
typester Mar 21, 2025
91f49fc
nanpa: bump
ilo-nanpa[bot] Mar 21, 2025
2e2c5ee
fix uint32 overflow (#615)
theomonnom Mar 28, 2025
7cbdddf
expose apm stream_delay (#616)
theomonnom Mar 30, 2025
4a55d1d
ffi v0.12.19 (#617)
theomonnom Mar 30, 2025
dcaf8df
fix rtc.AudioFrame.from_participant not closing (#619)
theomonnom Apr 4, 2025
3f54b6d
Data streams (#603)
ladvoc Apr 7, 2025
7199a56
Data streams (#603)
ladvoc Apr 8, 2025
da5c713
nanpa: bump
ilo-nanpa[bot] Apr 8, 2025
e6b3a14
Initial HTTP_PROXY support for SignalClient (#623)
typester Apr 10, 2025
21eeeb7
bump ffi version (#625)
typester Apr 10, 2025
e8a7a6a
fix soxr: remove FE_INVALID optimization (#627)
theomonnom Apr 15, 2025
0773bce
ffi v0.12.22 (#628)
theomonnom Apr 15, 2025
de3a3e1
Bump protocol to v1.37.1 and add audio_features handling (#634)
lukasIO May 7, 2025
01746ff
nanpa: remove (#633)
May 8, 2025
2c83d4d
bump ffi, rtc, protocol (#635)
lukasIO May 8, 2025
3ee79bc
Unorder the lossy data channel (#639)
bcherry May 14, 2025
d6a4f07
notify refreshed_token to audio filters (#636)
typester May 15, 2025
67edb0b
Bump livekit + livekit-ffi versions (#640)
bcherry May 15, 2025
ee57021
0.12.24 (#642)
bcherry May 16, 2025
d4de69e
feat(api): forward and move participant apis (#641)
anunaym14 May 16, 2025
f2dc620
feat: Region pinning support (#631)
typester May 16, 2025
696ea4a
bump livekit-api and livekit-ffi (#644)
typester May 16, 2025
318c784
try to fix webrtc build for iOS/macOS. (#646)
cloudwebrtc May 20, 2025
32c7388
use workspace version for easier version management (#645)
typester May 20, 2025
ba342c2
bump version for webrtc (fix win CI) (#650)
cloudwebrtc Jun 3, 2025
4b64155
Remove debouncer when fast_publish is enabled (#649)
typester Jun 4, 2025
e70bb87
add note about building on mac in README (#653)
davidzhao Jun 5, 2025
fa727bd
fix duration overflow (#654)
theomonnom Jun 5, 2025
1a238a1
chore: Update dependencies for wgpu room. (#655)
cloudwebrtc Jun 10, 2025
81a3151
add frame-size-ms to AudioStream (#658)
theomonnom Jun 10, 2025
b611791
bump ffi version (#659)
typester Jun 10, 2025
c1e6a30
Setup release-plz to automate changelog creation and cretes publishin…
typester Jun 11, 2025
74a0596
chore: release (#660)
github-actions[bot] Jun 11, 2025
fd7866c
fix env (#661)
typester Jun 11, 2025
aa945dd
use path.join instead of hardcoded `/` (#663)
theomonnom Jun 16, 2025
dcb8919
fix(webrtc-sys-build): add error context to debug issues (#664)
typester Jun 16, 2025
bdc0ffb
Expose room updates, support MoveParticipant (protocol 15) (#662)
davidzhao Jun 17, 2025
10981d2
add webrtc-sys-build to release-plz managed crates (#666)
typester Jun 17, 2025
48ef188
add soxr desc (#669)
typester Jun 17, 2025
3c272d7
add livekit-ffi to release-plz management (#667)
typester Jun 17, 2025
ce6fb8b
fix(webrtc-sys-build): add temporary workaround to fix ci in Windows …
typester Jun 17, 2025
89355fb
chore: release (#668)
github-actions[bot] Jun 17, 2025
3003bf2
call ffi-build workflow after release (#670)
typester Jun 18, 2025
bcffbe2
fix: `audio_frame_ms` didn't work expectedly (#671)
typester Jun 23, 2025
ab99f24
chore: release (#672)
github-actions[bot] Jun 23, 2025
3268aba
need actions permission to run workflows (#673)
typester Jun 23, 2025
5aeba0b
remove published tracks when the room is closed (#677)
typester Jul 16, 2025
2d47d16
chore: release (#679)
github-actions[bot] Jul 16, 2025
eadb1b6
fix SoxrResampler flush segv (#678)
theomonnom Jul 16, 2025
ce3301c
update workflows to use workflow_call (#681)
typester Jul 18, 2025
5ded9c7
chore(livekit-ffi): release v0.12.30 (#680)
github-actions[bot] Jul 18, 2025
d2fb275
update readme (#682)
ladvoc Jul 22, 2025
e25d238
TLS feature for all examples (#684)
ladvoc Jul 31, 2025
163aece
Handle region fetch errors (#686)
ladvoc Jul 31, 2025
d10e537
Expose departure_timeout in CreateRoomRequest (#685)
indexds Jul 31, 2025
ab25c30
chore: release (#687)
github-actions[bot] Jul 31, 2025
9907ad6
feat: VA-API support for linux. (#638)
cloudwebrtc Aug 25, 2025
5f06521
add attributes to Claims and AccessToken (#693)
spencerbart Aug 25, 2025
e6ae543
fix: hardware rendering (#695)
cs50victor Aug 27, 2025
59eda4a
Add example for local audio streaming (#676)
chenosaurus Sep 3, 2025
9d979b3
chore: release (#694)
github-actions[bot] Sep 3, 2025
68ea142
fix release-plz CI (#698)
cloudwebrtc Sep 3, 2025
ac1952f
Data channel reliability (#688)
ladvoc Sep 9, 2025
553047a
chore: Optional flags for video hw codec. (#701)
cloudwebrtc Sep 9, 2025
289b036
Add option to enable audio preconnect buffer in SDK & FFI (#700)
chenosaurus Sep 9, 2025
89579d5
chore: release (#702)
github-actions[bot] Sep 9, 2025
9fb6b4d
Upgrade protocol to v1.41.0 (#703)
ladvoc Sep 10, 2025
bda4a66
Disable opus red for e2ee enabled clients (#706)
lukasIO Sep 15, 2025
10f3580
chore: Upgrade libwebrtc to m137. (#696)
cloudwebrtc Sep 18, 2025
8bcbf55
fix: apply original participant fields in data messages (#709)
s-hamdananwar Sep 18, 2025
56178e3
Add send_bytes method (#691)
bcherry Sep 19, 2025
a38271f
fix Builds/E2E Tests CI. (#715)
cloudwebrtc Sep 25, 2025
7688e49
Do not modify raw packets (#714)
ladvoc Sep 25, 2025
59c8246
Update Rust toolchain installation method (#716)
cloudwebrtc Sep 25, 2025
5989ef4
Update Rust toolchain installation method (#717)
cloudwebrtc Sep 25, 2025
70141f4
Fix intermittently failing E2E reliability test (#718)
ladvoc Sep 25, 2025
fed9cc6
Use info level for test logging (#720)
ladvoc Sep 27, 2025
81a5de0
Implement Display and Error for RpcError (#719)
ladvoc Sep 27, 2025
a5af4bb
nvidia codec improve (#721)
cloudwebrtc Sep 29, 2025
0215091
chore: release (#704)
github-actions[bot] Sep 29, 2025
5628559
[dn-changes] changes done by DN
jfjalburquerque Feb 21, 2025
76760e6
update android_build to repackage to livekit.org.webrtc
franNadalesDN Oct 2, 2025
e2a303e
Ensure webrtc Android build is properly configured
franNadalesDN Oct 2, 2025
f8ee891
Implement WebRTC package migration and structure creation scripts
franNadalesDN Oct 2, 2025
fda1fc0
Add x264 video encoder if no HW encoding available
franNadalesDN Oct 3, 2025
4bc6ee3
Enhance build scripts to support x264 video encoding and improve libr…
franNadalesDN Oct 3, 2025
f2157ce
Update script to read lk_custom_webrtc from param. Mandatory
jngd Oct 9, 2025
1b020d8
Update script (.bat) to read lk_custom_webrtc from param. Mandatory
jngd Oct 9, 2025
dff847e
Refactor build scripts and configurations for WebRTC and x264 integra…
franNadalesDN Oct 9, 2025
e220eeb
Merge branch 'feature/add_x264_encoder' of github.com:DisplayNote/dn_…
franNadalesDN Oct 9, 2025
d389a1f
remove lk_custom_webrtc parameter in script
franNadalesDN Oct 9, 2025
02319a4
Merge branch 'feature/add_x264_encoder' of github.com:DisplayNote/dn_…
jngd Oct 9, 2025
bd8ed62
improve generate_conan_build adding android arch and build_type
franNadalesDN Oct 9, 2025
397dcfc
Update cabi.toml to do not generate JNI_OnLoad
jngd Oct 9, 2025
2c528ea
Merge branch 'feature/add_x264_encoder' of github.com:DisplayNote/dn_…
jngd Oct 9, 2025
6c0ee13
Activate cbindgen
jngd Oct 9, 2025
b950443
Add detailed fork documentation and update build scripts for improved…
franNadalesDN Oct 10, 2025
1064674
Merge branch 'feature/add_x264_encoder' of github.com:DisplayNote/dn_…
franNadalesDN Oct 10, 2025
d882b38
Fix formatting in build_android.sh for release build settings
franNadalesDN Oct 10, 2025
196cc11
Change permissions of strip_jni_zero.sh to make it executable
franNadalesDN Oct 10, 2025
9d784f0
fix livekit_ffi.h format
franNadalesDN Oct 10, 2025
bd522ae
Merge branch 'main' into support/ffi-v0.12.34
franNadalesDN Oct 10, 2025
6104ae2
Fix cargo format
franNadalesDN Oct 10, 2025
a983715
Refactor build_android.sh: Update debug build settings and adjust art…
franNadalesDN Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file modified .github/banner_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .github/banner_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 25 additions & 16 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ on:
paths:
- livekit/**
- libwebrtc/**
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
Expand All @@ -35,29 +36,32 @@ jobs:
fail-fast: false
matrix:
include:
- os: windows-2019
- os: windows-latest
target: x86_64-pc-windows-msvc
- os: windows-2019
- os: windows-latest
target: aarch64-pc-windows-msvc
#extraargs: --exclude livekit-api --exclude livekit-ffi # waiting for v0.17 of ring
- os: macos-13
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-13
- os: macos-latest
target: aarch64-apple-darwin
- os: macos-13
- os: macos-latest
target: aarch64-apple-ios
- os: macos-13
- os: macos-latest
target: aarch64-apple-ios-sim
- os: ubuntu-20.04
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: buildjet-4vcpu-ubuntu-2204-arm
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
- os: ubuntu-20.04
- os: ubuntu-latest
target: aarch64-linux-android
- os: ubuntu-20.04
ndk_arch: aarch64-unknown-linux-musl
- os: ubuntu-latest
target: armv7-linux-androideabi
- os: ubuntu-20.04
ndk_arch: arm-unknown-linux-musleabihf
- os: ubuntu-latest
target: x86_64-linux-android
ndk_arch: x86_64-unknown-linux-musl

name: Build (${{ matrix.target }})
runs-on: ${{ matrix.os }}
Expand All @@ -67,15 +71,19 @@ jobs:
submodules: true

- name: Install linux dependencies
if: ${{ matrix.os == 'ubuntu-20.04' || matrix.os == 'buildjet-4vcpu-ubuntu-2204-arm'}}
if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm'}}
run: |
sudo apt update -y
sudo apt install -y libssl-dev libx11-dev libgl1-mesa-dev libxext-dev

- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
- name: Install VA-API/NVIDIA drivers for linux x64 build
if: ${{ matrix.os == 'ubuntu-latest'}}
run: |
sudo apt install -y libva-dev libdrm-dev libnvidia-compute-570 libnvidia-decode-570 nvidia-cuda-dev -y

- name: Install Rust toolchain.
run: |
rustup target add ${{ matrix.target }}

- name: Build (Cargo)
if: ${{ !contains(matrix.target, 'android') }}
Expand All @@ -85,5 +93,6 @@ jobs:
- name: Build (Android)
if: ${{ contains(matrix.target, 'android') }}
run: |
ln -sf $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/lib/${{ matrix.ndk_arch }}/{libunwind.so,libc++abi.a} $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/lib/
cargo install cargo-ndk
cargo ndk --target ${{ matrix.target }} build --release -p livekit --workspace -vv
71 changes: 41 additions & 30 deletions .github/workflows/ffi-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,84 +17,95 @@ on:
push:
branches: ["main"]
tags:
- "ffi-v*"
- "rust-sdks/livekit-ffi@*"
workflow_dispatch:
workflow_call:
inputs:
tag:
required: false
type: string

env:
CARGO_TERM_COLOR: always
TAG_NAME: ${{ inputs.tag || github.ref_name }}

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2019
- os: windows-latest
platform: windows
dylib: livekit_ffi.dll
target: x86_64-pc-windows-msvc
name: ffi-windows-x86_64
- os: windows-2019
- os: windows-latest
platform: windows
dylib: livekit_ffi.dll
buildargs: --no-default-features --features "native-tls" # ring 0.16 is incompatible with win aarch64
target: aarch64-pc-windows-msvc
name: ffi-windows-arm64
- os: macos-13
- os: macos-latest
platform: macos
dylib: liblivekit_ffi.dylib
target: x86_64-apple-darwin
macosx_deployment_target: "10.15"
name: ffi-macos-x86_64
- os: macos-13
- os: macos-latest
platform: macos
dylib: liblivekit_ffi.dylib
target: aarch64-apple-darwin
macosx_deployment_target: "11.0" # aarch64 requires 11
name: ffi-macos-arm64
- os: macos-13
- os: macos-latest
platform: ios
dylib: liblivekit_ffi.a
target: aarch64-apple-ios
iphoneos_deployment_target: "13.0"
name: ffi-ios-arm64
- os: macos-13
buildargs: --no-default-features --features "rustls-tls-webpki-roots"
- os: macos-latest
platform: ios
dylib: liblivekit_ffi.a
target: aarch64-apple-ios-sim
iphoneos_deployment_target: "13.0"
name: ffi-ios-sim-arm64
- os: ubuntu-20.04
buildargs: --no-default-features --features "rustls-tls-webpki-roots"
- os: ubuntu-latest
platform: linux
build_image: quay.io/pypa/manylinux_2_28_x86_64
build_image: sameli/manylinux_2_28_x86_64_cuda_12.3
dylib: liblivekit_ffi.so
target: x86_64-unknown-linux-gnu
name: ffi-linux-x86_64
- os: buildjet-4vcpu-ubuntu-2204-arm
- os: ubuntu-24.04-arm
platform: linux
build_image: quay.io/pypa/manylinux_2_28_aarch64
dylib: liblivekit_ffi.so
target: aarch64-unknown-linux-gnu
name: ffi-linux-arm64
- os: ubuntu-20.04
- os: ubuntu-latest
platform: android
dylib: liblivekit_ffi.so
jar: libwebrtc.jar
target: aarch64-linux-android
ndk_arch: aarch64-unknown-linux-musl
name: ffi-android-arm64
buildargs: --no-default-features --features "rustls-tls-webpki-roots"
- os: ubuntu-20.04
- os: ubuntu-latest
platform: android
dylib: liblivekit_ffi.so
jar: libwebrtc.jar
target: armv7-linux-androideabi
ndk_arch: arm-unknown-linux-musleabihf
name: ffi-android-armv7
buildargs: --no-default-features --features "rustls-tls-webpki-roots"
- os: ubuntu-20.04
- os: ubuntu-latest
platform: android
dylib: liblivekit_ffi.so
jar: libwebrtc.jar
target: x86_64-linux-android
ndk_arch: x86_64-unknown-linux-musl
name: ffi-android-x86_64
buildargs: --no-default-features --features "rustls-tls-webpki-roots"

Expand All @@ -105,10 +116,9 @@ jobs:
with:
submodules: true

- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
- name: Install Rust toolchain.
run: |
rustup target add ${{ matrix.target }}

- name: Set up QEMU
if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
Expand Down Expand Up @@ -143,7 +153,7 @@ jobs:
yum install clang -y; \
yum groupinstall 'Development Tools' -y; \
clang --version; \
yum install openssl-devel libX11-devel mesa-libGL-devel libXext-devel -y; \
yum install openssl-devel libX11-devel mesa-libGL-devel libXext-devel libva-devel libdrm-devel -y; \
curl --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y; \
cd livekit-ffi && cargo build --release --target ${{ matrix.target }} ${{ matrix.buildargs }}"

Expand All @@ -154,8 +164,9 @@ jobs:
if: ${{ matrix.platform == 'android' }}
run: |
cd livekit-ffi/
ln -sf $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/lib/${{ matrix.ndk_arch }}/{libunwind.so,libc++abi.a} $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/lib/
cargo install cargo-ndk
cargo ndk --bindgen --target ${{ matrix.target }} build --release ${{ matrix.buildargs }}
cargo ndk --target ${{ matrix.target }} build --release ${{ matrix.buildargs }}

- name: Copy/Build licenses
run: |
Expand All @@ -169,52 +180,52 @@ jobs:

# zip the files
- name: Zip artifact (Unix)
if: ${{ matrix.os != 'windows-2019' && matrix.platform != 'android'}}
if: ${{ matrix.os != 'windows-latest' && matrix.platform != 'android'}}
run: |
cp livekit-ffi/include/livekit_ffi.h target/${{ matrix.target }}/release/
cd target/${{ matrix.target }}/release/
zip ${{ github.workspace }}/${{ matrix.name }}.zip ${{ matrix.dylib }} livekit_ffi.h LICENSE.md

- name: Zip artifact (Unix for Android)
if: ${{ matrix.os != 'windows-2019' && matrix.platform == 'android'}}
if: ${{ matrix.os != 'windows-latest' && matrix.platform == 'android'}}
run: |
cp livekit-ffi/include/livekit_ffi.h target/${{ matrix.target }}/release/
cd target/${{ matrix.target }}/release/
zip ${{ github.workspace }}/${{ matrix.name }}.zip ${{ matrix.dylib }} ${{ matrix.jar }} livekit_ffi.h LICENSE.md

- name: Zip artifact (Windows)
if: ${{ matrix.os == 'windows-2019' }}
if: ${{ matrix.os == 'windows-latest' }}
run: |
cp livekit-ffi/include/livekit_ffi.h target/${{ matrix.target }}/release/
cd target/${{ matrix.target }}/release/
Get-ChildItem -Path ${{ matrix.dylib }}, livekit_ffi.h, LICENSE.md | Compress-Archive -DestinationPath ${{ github.workspace }}\${{ matrix.name }}.zip

- name: Upload artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ffi-builds
name: ffi-builds-${{ matrix.target }}
path: ${{ matrix.name }}.zip


release:
name: Release to GH (Draft)
runs-on: ubuntu-latest
needs: build
permissions:
contents: write
if: startsWith(github.ref, 'refs/tags/ffi-v')
if: startsWith(inputs.tag || github.ref_name, 'rust-sdks/livekit-ffi@')
env:
GH_TOKEN: ${{ github.token }}
steps:
- uses: actions/checkout@v3

- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: ffi-builds
pattern: ffi-builds-*
merge-multiple: true
path: ${{ github.workspace }}/ffi-builds

- name: Create draft release
run: |
gh release create ${{ github.ref_name }} --draft --title "${{ github.ref_name }}"
gh release upload ${{ github.ref_name }} ${{ github.workspace }}/ffi-builds/*
gh release create ${{ env.TAG_NAME }} --draft --title "${{ env.TAG_NAME }}"
gh release upload ${{ env.TAG_NAME }} ${{ github.workspace }}/ffi-builds/*
8 changes: 8 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ jobs:
toolchain: nightly-2023-12-30
components: rustfmt

- name: Check workspace versions match
run: |
cargo metadata --format-version=1 --no-deps |
jq -e -r '.packages[] | "\(.name) \(.version)"' |
sort | xargs -l bash -c \
'grep "$0 = { version = \"$1\"" -q Cargo.toml && printf "version %-7s %-27s $0\n" $1 "matches package" || printf "version %-7s is not reflected on package $0\n" "$1" | false';
if [ $? -eq 0 ]; then exit 0; else exit 1; fi

- name: Cargo fmt
run: |
cargo fmt -- --check
2 changes: 1 addition & 1 deletion .github/workflows/gen-protocol.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Install prost generators
run: cargo install protoc-gen-prost protoc-gen-prost-serde
run: cargo install protoc-gen-prost@0.3.1 protoc-gen-prost-serde@0.3.1

- name: generate python stubs
run: ./generate_proto.sh
Expand Down
41 changes: 0 additions & 41 deletions .github/workflows/publish.yml

This file was deleted.

Loading
Loading