13个版本 (8个稳定版)

2.0.0 2023年3月16日
1.4.0 2022年11月19日
1.3.0 2022年10月28日
1.2.0 2020年7月13日
0.3.0 2018年11月21日

#5 in #pcapng

Download history • Rust 包仓库 657/week @ 2024-03-14 • Rust 包仓库 576/week @ 2024-03-21 • Rust 包仓库 436/week @ 2024-03-28 • Rust 包仓库 434/week @ 2024-04-04 • Rust 包仓库 549/week @ 2024-04-11 • Rust 包仓库 429/week @ 2024-04-18 • Rust 包仓库 415/week @ 2024-04-25 • Rust 包仓库 410/week @ 2024-05-02 • Rust 包仓库 578/week @ 2024-05-09 • Rust 包仓库 458/week @ 2024-05-16 • Rust 包仓库 568/week @ 2024-05-23 • Rust 包仓库 613/week @ 2024-05-30 • Rust 包仓库 524/week @ 2024-06-06 • Rust 包仓库 698/week @ 2024-06-13 • Rust 包仓库 601/week @ 2024-06-20 • Rust 包仓库 500/week @ 2024-06-27 • Rust 包仓库

2,362 每月下载量
用于 feeless

无许可证

83KB
1K SLoC

pcarp

一个用于读取pcapng文件的纯Rust库。

  • 正确:在广泛的测试套件中与tshark一致。
  • 快速:性能与libpcap相似。
  • 灵活:封装了任何实现Read的类型。
  • 易用:它是Packet的迭代器 - 无生命周期。
  • 健壮:尽可能优雅地处理损坏的pcap。

限制

libpcap功能丰富;pcarp只读取pcapng文件。与libpcap相比的限制

  • 不支持旧版pcap;pcarp仅支持pcapng。
  • 不支持写入;pcarp是只读的。
  • 不进行任何类型的解析。 pcarp提供原始数据包。
  • 不支持过滤。这一点与“不进行解析”有关。

如果您想解析以太网/IP/TCP等协议,则需要另一个库。我们使用etherparse,效果很好。还有pnetrshark,尽管我还没有尝试过它们。

错误处理

pcarp被设计成对错误非常健壮,即使面对损坏或恶意的输入。

  • 如果pcarp遇到意外的标志或选项,它将使用tracing crate记录警告并继续。
  • 如果一个数据包被破坏到无法识别,pcarp将返回错误,但后续的数据包仍然可读。
  • 如果pcarp遇到帧损坏,则错误不可恢复,无法读取更多数据包。

pcarp 永远不会 报错。它经过模糊测试以确保这一点,但模糊测试并不完美。如果您遇到崩溃,请报告它!

许可证

该软件本身属于公共领域。

部分文档复制自pcap规范,因此版权归IETF所有;这些地方已经明确标注。集成测试使用的pcaps由Wireshark基金会根据GNU GPL条款分发。

依赖项

~0.8–1.4MB
~27K SLoC