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
每月141次 下载
用于 tether-egui
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
- 后面跟着可选的参数,用于 一般配置,例如
- 子命令
receive
、send
、topics
、record
或playback
- 后面跟着可选参数,与特定的子命令相关
示例
以下是一个使用 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名称进行解析非常有用。现在还提供以下实时速率计算(每秒消息数)和活动图
💡 此实用程序无法看到过去(除非是保留消息的情况),因此请记住,对于不经常发布消息的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