#代码生成 #解析器 #枚举 #生成 #访问器 #标志 #SAWP

sawp-ffi-derive

为结构和枚举生成与 cbindgen 兼容的成员访问器

12个重大版本发布

0.13.0 2024年7月17日
0.12.1 2023年4月12日
0.12.0 2023年2月13日
0.11.1 2022年6月21日
0.2.0 2021年2月22日

#5#accessors

Download history 24/week @ 2024-04-22 18/week @ 2024-04-29 19/week @ 2024-05-06 29/week @ 2024-05-13 15/week @ 2024-05-20 45/week @ 2024-05-27 19/week @ 2024-06-03 22/week @ 2024-06-10 17/week @ 2024-06-17 26/week @ 2024-06-24 21/week @ 2024-07-01 4/week @ 2024-07-08 162/week @ 2024-07-15 9/week @ 2024-07-22 113/week @ 2024-07-29 18/week @ 2024-08-05

302 每月下载
9 个crate中使用(通过 sawp-ffi

MIT 许可证

45KB
744

法语

安全感知线协议解析库。

此库包含各种线协议的解析器,旨在在网络安全传感器中使用。

每个解析器都提供了一个通用接口,允许传感器引擎将字节喂入解析器并接收解析后的元数据。字节预期位于会话层,因此引擎负责将传输层数据组装成会话有效负载,然后将其喂入此库。

此库旨在具有弹性和解析尽可能多的野外观察到的消息。如果消息无效或超出规范,解析器不应将其丢弃。解析器将在消息验证失败时设置标志,而不是返回错误。

每个解析器的接口都是统一和简单的,仅由几个函数组成

  • 测试有效负载是否为所讨论的协议(例如,这是不是 modbus?)
  • 向解析器提供更多字节
  • 设置回调,在特定协议的元数据事件上调用(待办事项)
  • 指示某些字节不可用(例如,通知数据包丢失)(待办事项)
  • 指示会话已结束(待办事项)

该库公开了Rust和C绑定,便于集成到现有的和未来的网络安全传感器平台。(待办事项)

用法

通过在项目的 Cargo.toml 依赖项中包含解析器来开始使用SAWP。使用常见类型也需要基础库。

Rustc 的最低支持版本是 rustc1.63.0

示例

[dependencies]
sawp-modbus = "0.13.0"
sawp = "0.13.0"

FFI 支持

一些解析器提供了用于 C/C++ 项目的外部函数接口。可以通过构建时启用 ffi 功能来启用 FFI 支持。

还提供了一个 Makefile,以简化构建过程。请参阅此文件以获取更深入的文档。

# Install cbindgen which is required to generate headers
cargo install --force cbindgen

# Build headers and shared objects
make

贡献

此项目正在积极维护并接受开源贡献。有关详细信息,请参阅 CONTRIBUTING

依赖关系

约 2.5MB
约 52K SLoC