7 个版本
0.3.1 | 2024年7月15日 |
---|---|
0.3.0 | 2024年5月24日 |
0.2.3 | 2023年11月13日 |
0.2.2 | 2023年10月30日 |
0.1.7 | 2023年8月31日 |
#231 在 解析器工具
870 每月下载量
在 bumble 中使用
735KB
16K SLoC
数据包描述语言 (PDL)
PDL 是一种特定领域的语言,用于编写二进制协议数据包的定义。在所有语言中,从原始字节解析和验证数据包都是繁琐且易出错的。PDL 为多种目标语言生成内存安全且定制的后端
- Rust
- C++
- Python
历史上,PDL 是作为 Android 蓝牙堆栈(bluetooth_packetgen)的一部分开发的,作为一种生成蓝牙数据包解析器和序列化器的方式,以减少操作和验证原始数据时出现的内存安全问题。
如何使用 PDL
- 编写协议定义
cargo run my-protocol.pdl --output-format rust > my-protocol.rs
为所有支持的后端提供了特定语言的说明
支持的功能
- 标量值
- 枚举
- 数组
- 可选字段
- 嵌套数据包
- 条件数据包推导
- 自定义字段定义
类似项目
依赖
~3–11MB
~120K SLoC