#web-rtc #sdp #string-format #jsep

webrtc-sdp

webrtc-sdp根据RFC4566规范解析SDP格式的字符串。它特别支持JSEP草案中所需的WebRTC功能子集。

16个版本

使用旧的Rust 2015

0.3.12 2024年6月19日
0.3.11 2024年1月17日
0.3.10 2023年1月5日
0.3.9 2022年1月13日
0.1.0 2019年1月27日

#78 in 网络编程

Download history 733/week @ 2024-05-01 727/week @ 2024-05-08 947/week @ 2024-05-15 646/week @ 2024-05-22 683/week @ 2024-05-29 469/week @ 2024-06-05 703/week @ 2024-06-12 734/week @ 2024-06-19 706/week @ 2024-06-26 722/week @ 2024-07-03 1121/week @ 2024-07-10 1045/week @ 2024-07-17 1486/week @ 2024-07-24 1036/week @ 2024-07-31 994/week @ 2024-08-07 686/week @ 2024-08-14

4,340 每月下载量
7 个crate中使用 (直接使用4个)

MPL-2.0 许可证

285KB
7K SLoC

webrtc-sdp

Crates.io Build Status Codecov coverage status License: MPL 2.0 dependency status

使用Rust编写的SDP解析器,专门用于处理WebRTC SDP报文和响应。

依赖项

  • Rust >= 1.60.0
  • 日志模块
  • serde模块
  • serde-derive模块

Cargo在第一次构建webrtc-sdp时会自动安装缺少的模块。

webrtc-sdp API

主函数是

fn parse_sdp(sdp: &str, fail_on_warning: bool) -> Result<SdpSession, SdpParserError>

sdp 参数是要解析的字符串。 fail_on_warning 参数确定如何处理解析过程中遇到的警告。任何遇到的问题都会存储起来,直到整个字符串解析完毕。解析过程中遇到的问题可以分为两类:

  • 阻止进一步解析或处理SDP的致命错误
  • 不会阻止进一步处理SDP的警告

警告可能包括属性中的未知参数。将 fail_on_warning 设置为 true 在开发过程中最有意义,当你希望了解所有潜在问题时。在生产环境中,预期 fail_on_warning 将为 false

parse_sdp() 返回一个包含所有解析信息的 SdpSession 结构体(代码)。或者在遇到致命错误(或者如果将 fail_on_warning 设置为 true 并且遇到任何警告)的情况下,将返回一个 SdpParserError代码),作为一个 Result

示例

webrtc-sdp 包中的 文件解析器 提供了一个如何调用 webrtc-sdp 解析器的简单示例。

贡献

由于 Travis CI 运行时检查代码格式化和 clippy 警告,请在提交 Pull Request 之前在本地运行以下命令。

如果您尚未安装 clippy 和 Rust 格式,可以按照以下方式安装

rustup component add rustfmt-preview
rustup component add clippy

使用 clippy 检查代码中的警告

cargo clippy

并根据 Rust 代码风格约定格式化所有代码

cargo fmt --all

Fuzzing

按照以下方式安装 cargo-fuzz

cargo install cargo-fuzz

使用 rust nightly,您可以开始 fuzzer 如下

cargo fuzz run fuzz_target_parse_sdp

许可证

根据 MPL-2.0 许可

依赖关系

~1–1.5MB
~53K SLoC