1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
[]
= "getstream"
= "0.1.0-preview.2"
= "2024"
= "1.88"
= ["Stream.io, Inc. <support@getstream.io>"]
= "LICENSE"
= "Official Rust SDK for Stream Video (server REST + SFU WebRTC)."
= "README.md"
= "https://github.com/GetStream/stream-video-rust"
= "https://getstream.io/video/"
= "https://docs.rs/getstream"
= ["video", "webrtc", "sfu", "stream", "rtc"]
= ["api-bindings", "multimedia::video", "network-programming"]
# A published crate's own `.cargo/config.toml` is never read by Cargo (config is
# discovered from the *consumer's* directory tree), so it is deliberately absent
# from this list — see the note above `[dependencies]`.
= [
"/.env.example",
"/build.rs",
"/CHANGELOG.md",
"/CONTRIBUTING.md",
"/examples/**",
"/LICENSE",
"/proto/**",
"/README.md",
"/src/**",
]
[]
# docs.rs uses rust-lang/crates-build-env, which ships libvpx-dev, cmake, clang,
# and pkg-config — everything `env-libvpx-sys` (system libvpx via pkg-config +
# bindgen) and `opusic-sys` (vendored libopus via CMake) need. Restrict to the
# Linux gnu target: the default extra targets (Windows/macOS) are cross-built
# and cannot discover a system libvpx. The crate has no Cargo features.
= ["x86_64-unknown-linux-gnu"]
= ["--cfg", "docsrs", "--generate-link-to-definition"]
# WebRTC (SFU join/publish/subscribe/media) is the core purpose of this SDK, so
# the RTC stack is always compiled in — there is no `webrtc` Cargo feature. A
# plain `cargo build` resolves the full media stack (prost + WebSocket at
# runtime, protox + prost-build at build time) and runs proto codegen. protox is
# pure Rust, so no `protoc` is required. See README "Requirements" for the one
# system dependency (libvpx) and the vendored-opus build tools.
[]
# Opus encode/decode for the audio media path. `opusic-sys` is a maintained
# libopus binding (tracks libopus 1.6.1) that bundles + static-links a *vendored*
# libopus, so the SDK build needs no system libopus at link or runtime. It
# replaces the unmaintained `audiopus_sys` (RUSTSEC-2026-0150); see
# `src/rtc/opus.rs` for the thin safe wrapper. The bundled CMake build needs
# `cmake` and a C compiler on PATH and nothing else: its `CMakeLists.txt`
# declares `cmake_minimum_required(VERSION 3.16)`, which satisfies CMake 4's
# minimum-policy floor without any build-time environment override.
= "0.7.4"
= "0.23.1"
= "1.12.1"
= "0.3.34"
= "0.13.0"
= "0.14.4"
= "0.14.4"
= { = "0.13.4", = false, = ["rustls", "json", "charset", "http2", "stream"] }
= { = "0.23.43", = false, = ["ring"] }
= { = "1.0.229", = ["derive"] }
= "1.0.151"
= "0.11.0"
= "2.0.20"
= { = "1.53.1", = ["rt-multi-thread", "macros", "time", "sync"] }
= { = "0.30.0", = false, = ["connect", "rustls-tls-webpki-roots"] }
= "0.1.44"
= "2.5.8"
= { = "1.24.0", = ["v4"] }
# VP8/VP9 encoder FFI for the video publish path (`rtc::vpx`). The `generate`
# feature runs bindgen at build time so any installed libvpx version works (no
# version-locked pre-generated bindings). This links a **system** libvpx
# (`brew install libvpx` / `apt install libvpx-dev`) discovered via pkg-config —
# see README "Requirements". (We bind libvpx directly rather than
# via `vpx-encode`, which hardcodes the encoder config and cannot disable frame
# lag or force keyframes — both required for realtime SFU publishing.)
= { = "5.1.3", = ["generate"] }
= "0.17.2"
= "1.1.9"
# In-process H264 via the maintained ralfbiedert wrapper. Pin 0.8.1 because
# 0.9.x's wide dependency requires Rust 1.89 while this crate supports 1.88.
# OpenH264 is BSD-2-Clause; downstreams must assess H264 patent obligations.
= "=0.8.1"
[]
# Example-only convenience for the two executable demos. OpenAI-specific bridge
# orchestration stays in `examples/gpt_realtime_bot.rs`; `tokio` here adds the
# runtime and signal features used only by the examples.
= "1.0.86"
= "0.8.2"
= "0.15.7"
= "0.13.0"
= "0.11.0"
= { = "1.53.1", = ["rt-multi-thread", "macros", "time", "sync", "signal"] }
= { = "0.3.23", = ["env-filter"] }
= { = "1.24.0", = ["v4"] }
# Proto codegen (build.rs) always runs: protox parses the vendored `.proto`
# sources in pure Rust (no `protoc`) and prost-build emits the Rust types.
[]
= "0.14.4"
= "0.9.1"
[[]]
= "join_call"
[[]]
= "gpt_realtime_bot"
[[]]
= "media_baseline"
= false
[[]]
= "timer_drift"
= false