#sdk #iot #aliyun #mqtt #alink

aiot

Rust Link SDK (Aliyun IoT) based on Alink Protocol

18 unstable releases (4 breaking)

0.10.0 Jun 17, 2022
0.9.6 Jun 10, 2022
0.8.6 Jun 6, 2022
0.8.0 Sep 10, 2021
0.6.5 Aug 11, 2021

#2118 in Web programming

MIT license

205KB
4.5K SLoC

Crates.io Workflow Status

Rust Link SDK (aiot-rs)

提供阿里云物联网平台的设备端 Rust 开发工具包(非阿里官方)。

阿里官方的 Link SDK 提供了以下语言的版本:

其中,C Link SDK 是功能最完整的,我们的 Rust SDK 也是对标这个进行设计开发的。 刚开始使用 Rust 时候,尝试基于 C SDK 在 FFI 基础上进行封装,发现这种方式性能和可扩展性都不高,于是基于 rumqttctokio 实现了现在的版本。

本项目遵循阿里云物联网平台定义的 Alink 协议,实现并正在实现如下功能:

  • 设备认证与接入
    • MQTT接入
    • CoAP接入
    • HTTPS接入
    • X.509证书接入
  • 消息通信
    • RRPC
    • 广播通信
  • 设备管理
    • 物模型
    • 数字孪生 (NEW)
    • 设备标签
    • 设备影子
    • 子设备管理
    • 文件管理
    • 设备签名
    • 设备任务
    • 时间同步
    • 设备分发
  • 监控运维
    • 日志服务
    • 设备诊断
    • 远程登录
    • 设备OTA
    • 远程配置

本项目仍在开发中,如有问题请提出 Issue 或者直接提交 Pull Request。目前没有移植 no_std 的计划。

示例代码

source demo.env # 初始化三元组环境变量,仅用于演示
cargo run --example mqtt-basic # MQTT 基础示例
cargo run --example mqtt-rrpc # MQTT RRPC 通信示例
cargo run --example mqtt-broadcast # MQTT 广播通信示例
cargo run --example data-model-basic # 物模型基础示例
cargo run --example dynregmq-basic # 设备“一型一密”动态注册示例
cargo run --example remote-access # 设备远程登录示例
cargo run --example http-basic # HTTP 连接示例

Dependencies

~19–34MB
~638K SLoC