#scada #ics #security #dnp3

rodbus

使用 tokio 实现的高性能 Modbus 协议异步版本

6 个版本 (稳定)

1.4.0 2024年6月24日
1.4.0-M12024年5月15日
1.3.0 2023年5月2日
1.2.0 2023年3月7日
0.1.1 2020年1月7日

网络编程 中排名第 755

Download history 76/week @ 2024-05-11 17/week @ 2024-05-18 4/week @ 2024-05-25 2/week @ 2024-06-08 122/week @ 2024-06-22 23/week @ 2024-06-29 34/week @ 2024-07-06

每月下载量 485
用于 rodbus-client

自定义许可协议

285KB
7K SLoC

Step Function I/O 提供的商业库

使用 Tokio 和 Rust 的 async/await 语法实现 Modbus 协议的高性能版本。

特性

  • 无恐慌解析
  • 正确性及符合规范
  • 内置日志和协议解码
  • 具有可配置重连策略的自动连接管理
  • 使用 Tokio 的多线程执行器实现可扩展性能
  • 使用 rustls 而不是 openssl 实现TLS
  • 为 C、C++、Java 和 .NET Core 生成模型绑定
  • 在所有由 Tokio 运行时支持的平台上运行
    • 官方支持:Windows x64 和 Linux x64,AArch64,ARMv7 和 ARMv6
    • 非官方支持:MacOS,PowerPC,MIPS,FreeBSD 和其他

支持模式

  • 支持 TCP、RTU(串行)和 Modbus 安全(TLS)模式,有或没有包含用户角色的 X.509 扩展。
  • 客户端和服务器

功能码

clientserver 示例演示了 API 的简单用法。

支持以下功能码

  • 读线圈 (0x01)
  • 读离散输入 (0x02)
  • 读保持寄存器 (0x03)
  • 读输入寄存器 (0x04)
  • 写单个线圈 (0x05)
  • 写单个寄存器 (0x06)
  • 写多个线圈 (0x0F)
  • 写入多个寄存器 (0x10)

许可协议

此库在非商业/非生产许可协议下公开发布。有关此非商业许可协议的条款,请参阅LICENSE.txt

此软件公开发布,但不是“开源”软件。您必须购买商业许可才能用于盈利。

请访问我们的网站了解商业许可

https://stepfunc.io/contact/

Cargo功能

默认功能可以在编译时禁用

  • tls - 使用TLS(安全Modbus)支持构建库
  • serial - 使用Modbus RTU和串行端口支持构建库

绑定

此库提供了C、C++、java和.NET Core的绑定。有关更多详细信息,请参阅文档

依赖项

~3–17MB
~175K SLoC