3个不稳定版本
0.2.2 | 2022年2月3日 |
---|---|
0.2.1 |
|
0.1.1 | 2022年1月29日 |
0.1.0 | 2022年1月28日 |
#35 in #valid
125KB
2.5K SLoC
Mqtt消息解码/编码库
这是一个用于创建mqtt客户端或mqtt代理的库。尽可能多的东西都被编码在类型系统中,例如。
- 数据包有自己的类型,除了PUBCOMP/PUBREC/PUBREL/PUBACK,因为它们本质上相同
- 原因代码是枚举类型,因此无法使用无效的原因代码构建数据包
- 为每个单独的数据包类型定义了属性,因此只能将有效的属性代码写入数据包
支持:MQTTv3和MQTTv5
这些版本的消息应可以使用此库进行解码/编码。
目前已实现并测试的功能
编码 | 解码 | 数据包类型 |
---|---|---|
✅ | ✅ | 连接 |
✅ | ✅ | Connack |
✅ | ✅ | 发布 |
✅ | ✅ | Puback |
✅ | ✅ | Pubrec |
✅ | ✅ | Pubrel |
✅ | ✅ | Pubcomp |
✅ | ✅ | 订阅 |
✅ | ✅ | Suback |
✅ | ✅ | 取消订阅 |
✅ | ✅ | Unsuback |
✅ | ✅ | Pingreq |
✅ | ✅ | Pingresp |
✅ | ✅ | 断开连接 |
✅ | ✅ | 认证 |
然而,某些东西仍然需要添加/改进
- 更好的命令构建API?
- 仅公开必要的代码
- 支持最大数据包大小(MQTTv5)。如果某些属性会使数据包“膨胀”,则不应发送这些属性
- 确保所有属性在其类型中具有正确的可选项设置
- 添加一些模糊测试以防止不希望的panic!调用
- 改进文档
依赖项
~180KB