14 个版本 (6 个重大变更)

0.9.0 2024年7月22日
0.8.0 2024年5月31日
0.7.2 2023年11月10日
0.6.2 2023年10月19日
0.3.2 2023年7月6日

#1 in #tether

Download history 136/week @ 2024-05-28 9/week @ 2024-06-04 3/week @ 2024-06-11 84/week @ 2024-07-16 57/week @ 2024-07-23

每月141次 下载
用于 tether-egui

MIT 许可证

115KB
2.5K SLoC

Tether CLI 工具

为 Tether,一个用于进程间通信的标准化 MQTT+MessagePack 系统,提供工具。

这是一个既是 (供 Tether 代理使用)又是 CLI 工具(用于开发和故障排除),使用 Rust 编写。

CLI 工具提供了一个带有子命令的单个二进制文件,如下所示

  • receive: 订阅所有/某些消息并尝试解码它们
  • send: 发布带有可选自定义负载的单条消息
  • topics: 订阅所有/某些消息并解析主题部分,如代理角色、代理 ID 和插件名称
  • record: 将消息记录到磁盘。与下面的 playback 结合使用,在模拟中非常有用
  • playback: 播放带有原始主题和时间的消息,以模拟一个或多个代理

作为库的使用尚未得到很好的文档记录,但请参阅 examples/api.rs 以快速了解。

传递参数

CLI 命令始终包含 两个部分

  • 主命令 tether
    • 后面跟着可选的参数,用于 一般配置,例如 --host--loglevel
  • 子命令 receivesendtopicsrecordplayback
    • 后面跟着可选参数,与特定的子命令相关

示例

以下是一个使用 receive 子命令的示例,但指定了 MQTT 代理的一些非默认细节,以及一个非默认的主题

tether --host 10.0.0.1 --username myUserName --password myPaSsWorD! receive --topic +/+/someSpecificPlug

安装

使用 homebrew

最简单的安装方法是使用适用于 Mac 的 homebrew 软件包管理器。目前这仅适用于运行 Apple Silicon 的 MacOS。

只需运行以下两个命令

brew tap randomstudio/tether
brew install tether

(公式和发布文件托管在 https://github.com/RandomStudio/homebrew-tether - 但你不需要知道这一点。)

使用Cargo

如果您已安装Rust工具链,您可以使用以下方式安装可执行文件...

cargo install tether-utils

... 这具有自动为您的架构重新编译的优势。该crate发布在 https://crates.io/crates/tether-utils


接收

  • 使用默认值运行: tether receive
  • 更多选项可以通过使用 tether send --help 获取

发送

  • 使用默认值运行: tether send
  • 更多选项可以通过使用 tether send --help 获取

关于 --message 的说明

如果它是有效的JSON,则将自动转换为MessagePack有效负载。请记住转义以下字符,例如 "[]{}

示例

tether send --message \{\"hello\":\"world\"\,\"arr\":\[1,2,3\]\}

主题

对于查看哪些Agent在线以及消息主题如何根据Agent角色、Agent ID和Plug名称进行解析非常有用。现在还提供以下实时速率计算(每秒消息数)和活动图

topics CLI screenshot

💡 此实用程序无法看到过去(除非是保留消息的情况),因此请记住,对于不经常发布消息的Agent,请保持这一点。

  • 使用默认值运行: tether topics
  • 更多选项可以通过使用 tether topics --help 获取

记录

  • 使用默认值运行: tether record
  • 更多选项可以通过使用 tether record --help 获取

默认情况下,将在当前目录中生成一个名为 recording-00000000.json(其中数字是时间戳)的文件。

回放

  • 使用默认值运行: tether playback
  • 更多选项可以通过使用 tether playback --help 获取

如果您没有使用 --file.path 指定文件,将使用包含的演示文件(demo.json)。 在大多数情况下,您可能希望指定实际文件的路径。

💡提示:通过传递 --loops.infinite 无限循环回放

依赖项

~21–31MB
~556K SLoC