#amqp #networking #message-bus #cli

应用 amqp-client-cli

用于监听 AMQP 消息总线上的消息的 CLI 程序

5 个版本

0.1.6 2022 年 9 月 22 日
0.1.5 2022 年 4 月 22 日
0.1.4 2022 年 4 月 20 日
0.1.3 2022 年 4 月 20 日
0.1.2 2022 年 3 月 25 日

命令行工具 中排名 #2032

MIT 许可证

76KB
1.5K SLoC

amqp-client-cli


为什么是 CLI 而不是 GUI

  • 消息总线服务器通常没有安装桌面环境,因此为了成为一个好的调试工具,它需要在没有 GUI 的情况下运行。
  • 终端比 GUI 更酷 😜

为什么选择 Rust

  • 跨平台支持
  • 出色的性能
  • 良好的错误处理
  • 我比其他语言更喜欢它 😁

Cargo 安装程序

如果您已安装 Cargo/Rust,可以使用以下命令使用 cargo 安装程序

cargoinstall amqp-client-cli

Windows 安装程序

amqp-client-cli-0.1.6-setup.exe

Linux 安装程序

sudosnap install amqp-client-cli

配置文件

程序必须有一个有效的配置文件才能运行。

当启动 amqp-client-cli 时,它将在以下位置查找配置文件。

  1. (可选) 参数路径
    • 示例:amqp-client-cli ~/projects/test.json
  2. (自动) 当前路径
    • 执行当前目录。
    • 示例:amqp-client-cli ./amqp-client-cli.json
  3. (自动) 配置路径
    • Linux: /home/Carman/.config/amqp-client-cli.json
    • Windows: C:\Users\Carman\AppData\Roaming\amqp-client-cli.json
    • macOS: /Users/Carman/Library/Application Support/amqp-client-cli.json
  4. (自动) 主路径
    • Linux: /home/Carman/amqp-client-cli.json
    • Windows: C:\Users\Carman\amqp-client-cli.json
    • macOS: /Users/Carman/amqp-client-cli.json

配置文件示例

{
  "host": "127.0.0.1",
  "port": 5672,
  "username": "guest",
  "password": "guest",
  "pfx_path": null,
  "pem_file": null,
  "domain": "test-domain",
  "items": [
    {
      "exchange_name": "test_program.incoming",
      "exchange_type": "Topic",
      "queue_routing_key": "*.*.*.*.#",
      "alias": "Incoming",
      "pretty": true,
      "log_file": "/tmp/logs.txt"
    },
    {
      "exchange_name": "test_program.logs",
      "exchange_type": "Topic",
      "queue_routing_key": "*.*.*.*.#",
      "alias": "Logs",
      "pretty": false,
      "log_file": "/tmp/logs.txt"
    },
    {
      "exchange_name": "test_program.trade",
      "exchange_type": "Topic",
      "queue_routing_key": "*.*.*.*.#",
      "alias": "Trade",
      "pretty": false,
      "log_file": null
    }
  ]
}

编辑

用户可以通过按 E 键设置交换机的编辑选项。每个交换机都有自己的选项集。或者用户可以在配置文件中设置选项。当程序退出时,在程序使用期间设置的选项将写入配置文件。

滚动

在使用程序时,用户可以按 P 键暂停程序。一旦程序暂停,消息窗口将不再自动显示更多消息。然后用户可以按上箭头和下箭头键或页面上键和页面下键来滚动消息窗口中的文本。

日志记录

用户可以在配置文件中设置日志参数,或者使用选项窗口在程序内部进行设置。一旦设置好日志文件路径,程序将把为该交换设置的消息写入文件。用户还可以将多个交换添加到单个日志文件中,以便将多个交换记录到单个文件。或者将它们记录到单独的文件。日志每秒写入一次文件。

队列

amqp-client-cli 将在服务器上保留所有现有队列。当订阅交换时,将创建一个新的队列,当取消订阅时,新创建的队列将被删除。

待办事项

  • 整理并分解 UI 结构
  • 让用户决定是否为特定交换的消息着色
  • 单元测试
  • 添加发布功能
  • 添加更多协议
    • MQTT

依赖项

~16–30MB
~489K SLoC