livekit-rs English

兼容性

对照基线是官方 Go 实现 LiveKit Server v1.13.10,源码提交为 e5655ac20267fa5005dccaf3f0e3bfc3ea688c07。完整兼容是项目目标,以下结论仅覆盖实际通过的场景。

已公开的 Go 与 Rust 对照

场景 官方 Go livekit-rs
隔离 IPv4 NAT、主动 ICE 重启、双向断网 24 秒、恢复及端口复用 4/4 3/4
仅物理接口、显式节点 IP、ICE 重启及端口复用 4/4 4/4
完整单机验收 参考基线 未完成
同硬件视频稳定性优势 参考基线 尚未测得

隔离 NAT 实验的通过场次均选中外部 UDP,主动重启 ICE 时保留原会话。断网恢复后,新会话收到有序的可靠数据。服务端仍在运行时,1,024 个被测 UDP 端口均可重新绑定。Rust 首轮单 PC 在入房前超时,日志显示 SDK 先收到 answer,后应用本地 offer。随后 Rust 两次复测通过,服务端是否存在对应缺陷仍未确定。

下载带日期的 NAT 机器可读证据。文件保留测试源码身份、二进制哈希、各场次结果和复测。哈希对应实验当时的构建。

验收范围

  • CLI、YAML 和环境变量 — 固定版本的 CLI 差分已通过仓库中的用例,部署时请核对实际使用的配置。
  • 信令、Server API、JWT 和 Webhook — 指定工作流已有验证。完整行为及错误路径仍需验收。
  • 媒体和数据 — 指定编码、选层、传输和恢复场景有原版 SDK 证据。公网 NAT 与完整媒体矩阵仍未关闭。
  • 高级部署 — Redis 拓扑和外部 worker 有单独验收范围。本站提供单节点部署指南。

复现 CLI 对照

构建锁定的 Rust 源码,并单独准备官方 Go v1.13.10 二进制。Go 基线只在测试环境中运行。

LIVEKIT_OFFICIAL_BIN=/absolute/path/to/official-v1.13.10/livekit-server \
  cargo test --locked -p lk-config --test official_cli -- --ignored

下载 CLI 测试证据。测试将官方进程的输出与 Rust 配置库的输出作对照。

完整兼容要求同一份最终 Rust 源码通过全部适用用例,并使用未经修改的官方 SDK 和 CLI。保留失败、复测、进程退出码、源码身份和二进制身份。

衡量视频稳定性

两端使用相同的硬件、操作系统、网络损伤设置、编码、分辨率、码率和参与者负载。测量卡顿时间、中断时长、首个解码帧时间、重连成功率和持续解码率,同时记录资源消耗。报告分布和失败场次,稳定性结论以重复对照为依据。