兼容性
对照基线是官方 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。保留失败、复测、进程退出码、源码身份和二进制身份。
衡量视频稳定性
两端使用相同的硬件、操作系统、网络损伤设置、编码、分辨率、码率和参与者负载。测量卡顿时间、中断时长、首个解码帧时间、重连成功率和持续解码率,同时记录资源消耗。报告分布和失败场次,稳定性结论以重复对照为依据。