快速零拷贝数据包生成与解析模块

pnet的Python项目详细描述


一个快速简单的python包创建和解析库,目前没有 更多的是概念的证明。灵感来自python pypacker库和rust的pnet

设计

通过利用 memoryviews 用于快速切片和零拷贝内存操作。

这个库接受一个字节字节数组对象并解析 与rust库类似的各种协议。结果 可以检查数据包对象,或者,如果数据包对象有bytearray支持, 也写信给。在这种情况下,将立即更新备份内存。

不是将数据包字段映射到属性,而是使用 像api这样的集合。这是我个人的品味,因为我不喜欢 自动生成的属性最终会使用与python重叠的akward名称 关键词。

性能

在我的机器上的初始测试表明,这个库大约是的两倍 分析数据包的速度很快,但我还没有确定这是否可以归因于 设计差异,或者我只是做得更少。

待办事项

这是我发布的大量网络检查代码的一部分。

  • 丰富的BPF支持和迷你语言
  • 异步支持原始套接字和数据包捕获
  • 基于异步的DHCP服务器和客户端库

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改