Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
- It has been moved here to become a refined, standalone developer tool
- Existing code may not adhere to the requirements defined herein, however, new code and refactors should

## Building

- `cargo run` builds and runs the app against the pinned, published LiveKit crates
- To build against a local `rust-sdks` checkout, comment out the published `livekit`/`livekit-api` lines in _Cargo.toml_ and uncomment the `path` lines below them (see "Building against a local rust-sdks" in _README.md_)

## UI best practices

- This application uses [egui](https://docs.rs/egui/latest/egui/)
Expand Down
7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ winit = { version = "0.30.13", features = [ "android-native-activity" ] }
livekit = { version = "0.7.49", features = ["rustls-tls-native-roots"] }
livekit-api = { version = "0.5.4", default-features = false, features = ["access-token"] }

# For local development, use a path override to the rust-sdks repo:
# livekit = { path = "../rust-sdks", features = ["rustls-tls-native-roots"] }
# For local SDK development, comment out the two lines above and uncomment these
# (clone https://github.com/livekit/rust-sdks to ../rust-sdks first; see
# "Building against a local rust-sdks" in README.md):
# livekit = { path = "../rust-sdks/livekit", features = ["rustls-tls-native-roots"] }
# livekit-api = { path = "../rust-sdks/livekit-api", default-features = false, features = ["access-token"] }

[package.metadata.bundle]
name = "LiveKit Client"
Expand Down
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,32 @@ An example of building a cross-platform, GUI application using the [LiveKit Rust
- [x] Simulate fault scenarios (e.g., reconnect, migration, etc.)
- [x] Send/receive remote procedure calls (RPC)
- [x] Send/receive data streams

## Building

The app builds and runs against the pinned, published LiveKit crates by default:

```sh
cargo run # debug
cargo run --release # optimized
```

The Rust toolchain is pinned in `rust-toolchain.toml` and selected automatically. The first build downloads a prebuilt `libwebrtc`, so it needs network access.

### Building against a local rust-sdks

To build against a local checkout of the [LiveKit Rust SDK](https://github.com/livekit/rust-sdks) instead of the published crates:

1. Clone the SDK next to this repository:
```sh
git clone https://github.com/livekit/rust-sdks ../rust-sdks
```
2. In `Cargo.toml`, comment out the two published `livekit` / `livekit-api` lines and uncomment the `path` lines below them (edit the paths if your checkout lives elsewhere):
```toml
livekit = { path = "../rust-sdks/livekit", features = ["rustls-tls-native-roots"] }
livekit-api = { path = "../rust-sdks/livekit-api", default-features = false, features = ["access-token"] }
```
These are plain `path` dependencies, so cargo re-resolves automatically — no `cargo update` needed.
3. `cargo run` — and rust-analyzer — now build against the local sources.

To return to the published crates, reverse step 2: uncomment the two version lines and comment the `path` lines back out.
1 change: 1 addition & 0 deletions cspell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ words:
- fira
- firacode
- idents
- libwebrtc
- livekit
- msvc
- noninteractive
Expand Down
Loading