#pcap #pcapng #pcap-ng

pcarp

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

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 657/week @ 2024-03-14 576/week @ 2024-03-21 436/week @ 2024-03-28 434/week @ 2024-04-04 549/week @ 2024-04-11 429/week @ 2024-04-18 415/week @ 2024-04-25 410/week @ 2024-05-02 578/week @ 2024-05-09 458/week @ 2024-05-16 568/week @ 2024-05-23 613/week @ 2024-05-30 524/week @ 2024-06-06 698/week @ 2024-06-13 601/week @ 2024-06-20 500/week @ 2024-06-27

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