#logged #topic #commit #partition #produce #log #offset

应用 streambed-logged-cli

基于文件系统的提交日志的 CLI 工具

3 个不稳定版本

新功能 0.11.0 2024 年 8 月 16 日
0.10.2 2024 年 8 月 13 日
0.10.1 2024 年 8 月 13 日

1#produce

Download history 188/week @ 2024-08-09

每月下载 188

Apache-2.0

150KB
3K SLoC

已记录

logged 命令提供了一种方便地操作基于文件的提交日志的工具。它提供了诸如消费或生成记录的 JSON 文件等功能。不对记录值的结构(有效负载)或是否加密做出任何假设。预期在需要的情况下,在管道中单独使用该工具。

使用示例写入后读取

首先获取可执行文件

cargo install streambed-logged-cli

...或者从这个仓库构建它

cargo build --bin logged --release

...并在 PATH 上创建构建(仅限 cargo build 和每个会话一次)

export PATH="$PWD/target/release":$PATH

...然后将一些数据写入名为 my-topic 的主题

echo '{"topic":"my-topic","headers":[],"key":0,"value":"SGkgdGhlcmU=","partition":0}' | \
  logged --root-path=/tmp produce --file -

...然后读取它

logged --root-path=/tmp subscribe --subscription my-topic --idle-timeout=0ms

...输出将如下所示

{"topic":"my-topic","headers":[],"timestamp":null,"key":0,"value":"SGkgdGhlcmU=","partition":0,"offset":0}

如果你使用 nushell,那么你可以做诸如在过程中对有效负载值进行 base64 解码等很棒的事情

logged --root-path=/tmp subscribe --subscription my-topic --idle-timeout=0m | from json --objects | update value {decode base64}

...输出将如下所示

╭────┬──────────┬────────────────┬───────────┬─────┬──────────┬───────────┬────────╮
│  # │  topic   │    headers     │ timestamp │ key │  value   │ partition │ offset │
├────┼──────────┼────────────────┼───────────┼─────┼──────────┼───────────┼────────┤
│  0 │ my-topic │ [list 0 items] │           │   0 │ Hi there │         00 │
╰────┴──────────┴────────────────┴───────────┴─────┴──────────┴───────────┴────────╯

使用 --help 来发现所有选项。

依赖关系

~10–19MB
~249K SLoC