4 个版本

0.2.4 2019 年 12 月 10 日
0.2.3 2019 年 12 月 10 日
0.2.0 2019 年 11 月 29 日
0.1.1 2019 年 11 月 21 日

#5#rdkafka

每月 21 次下载

Unlicense 或 MIT 协议

37KB
809

krs

krs 是一个用 Rust 编写的简单 Kafka 命令行工具,灵感来自 kt

crates.io Build Status

双授权 MIT 或 UNLICENSE

特性

  • 易于输入
  • 快速启动
  • 可能直观易用
  • 诊断输出到 stderr,主输出到 stdout,允许以下特性
  • JSON 输出,方便使用 jq 消费
  • 通过环境变量、.env 文件或直接通过 CLI 传递来更改一些上下文变量(例如 Kafka 代理或 Zookeeper 主机)。

教程

首先,请始终参考 -hhelp(或让我知道一些内容是否不清楚)。

krs -h
krs help
# All subcommands also have `help`, thanks to the amazing `clap` library.
krs env help

krs 从环境变量、.env 文件和 CLI 参数中收集 Kafka 代理和 Zookeeper 主机作为其上下文。要显示上下文变量

$ krs env show # or just `krs env`

如有疑问,您始终可以询问工具您目前正在使用的环境

$ cat .env
KRS_ZOOKEEPER=localhost:2181
$ export KRS_BROKERS=localhost:9092
$ krs env show
Environment:
  brokers: localhost:2181 (from env var (KRS_BROKERS))
  zookeeper: localhost:9092 (from .env file (KRS_ZOOKEEPER))

有一个小的助手可以设置上下文变量(或者您可以直接将环境变量 KRS_BROKERS/KRS_ZOOKEEPER 放在您的 .env 文件中)

$ krs env set -b localhost:9092 -z localhost:2181

一旦设置了上下文变量,您就可以列出 Kafka 主题

krs topics list # or just `krs topics`
# You should pipe the output to `jq` to make it look much better.
krs topics | jq

描述 Kafka 主题

krs topics describe -b localhost:9092 -z localhost:2181 -t topic-name

从主题中生产和消费

krs topics create -t my-topic
krs producer -t my-topic
Starting console producer. Press Ctrl+C to exit.
> hello
Sent: (0, 1)

兼容性

MSRV 是 Rust 1.39.0(主要是因为我使用该版本构建了工具,并且尚未测试旧版本)。

主要测试了 Kafka 2.1.1-cp1 (提交::9aa84c2aaa91e392)

即将推出的功能

注意:无法保证这些功能将在何时实现,但请随时提交 PR。

  • 从指定的偏移量(最早,最新等)消费
  • 描述其他 Kafka 资源(消费者组等)的配置
  • 移植更多管理命令
  • 对生产者有更多细粒度控制(处理键,发送到分区)
  • 在 stderr 输出中添加更多颜色。

为什么?

  • 输入 kafka-console-consumer --broker-list localhost:9092 --topic test 的命令实在太多。
  • 如果你忘记了 kafka-topics --create 命令的参数,工具会向你展示它的完整选项列表,其中最重要的错误信息告诉你缺少了哪些参数,却被埋藏在了列表中。
  • JVM 启动对于简单的 CLI 工具来说速度慢得让人烦恼。
  • RIIR,但精神可嘉!我认为 这个工具的灵感来源 已经是一个绝妙的主意。
  • 但最重要的是,我只是需要一个项目来学习 Rust! :)

依赖项

~19MB
~268K SLoC