3个版本

0.1.2 2023年8月4日
0.1.1 2023年8月3日
0.1.0 2023年8月3日

#4 in #dissector

MIT/Apache

1.5MB
44K SLoC

docs.rs crates.io CI

wsdf (Wirehark Dissector Framework) 是一个基于proc-macro的框架,可以从Rust数据类型生成Wireshark dissectors。使用wsdf,您可以在Rust内部以声明式方式编写dissectors。

以下是一个UDP dissectors的示例

#[derive(wsdf::Protocol)]
#[wsdf(decode_from = [("ip.proto", 17)])]
struct UDP {
    src_port: u16,
    dst_port: u16,
    length: u16,
    checksum: u16,
    #[wsdf(subdissector = ("udp.port", "dst_port", "src_port"))]
    payload: Vec<u8>,
}

有关更多信息,请参阅文档。还有一些示例,包括下面的简单DNS dissectors。

DNS dissector showcase

wsdf已在Linux上针对Wireshark 4.0进行了测试。

许可证

根据您的选择,受Apache License,版本2.0MIT许可证许可。
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,都应双重许可,如上所述,不附加任何额外条款或条件。

依赖关系

~2.4–4MB
~76K SLoC