• Stars
    star
    278
  • Rank 148,454 (Top 3 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Kafka CLI for humans

Build

Zoe: The Kafka CLI for humans

Zoe is a command-line tool to interact with Kafka in an easy and intuitive way. Wanna see this in action? check out this demo...

demo

Zoe really shines when it comes to interacting with cloud-hosted Kafka clusters (Kubernetes, AWS, etc.) due to its ability to offload consumption and execution to Kubernetes pods or lambda functions (more runners will be supported in the future).

Try zoe from your browser!

You can try zoe from your browser using our new Katacoda tutorials.

Key features

Here are some of the most interesting features of zoe :

  • Consume Kafka topics from a specific point in time (ex. using --from 'PT5h' from the last 5 hours).
  • Filter data based on content (ex. using --filter "id == '12345'" filters records with the selected id).
  • Filter data based on record metadata and record headers (ex. using --expose-metadata --filter "__metadata__.offset == '95' && __metadata__.partition == '0'" finds records on the given partition with the given offset. The same query can be done to target the record headers).
  • Supports offloading consumption of data to multiple lambda functions, Kubernetes pods, etc. for parallelism (ex. adding --runner kubernetes would offload all the requests to a configured Kubernetes cluster).
  • Monitor consumer groups' offsets.
  • Upload Avro schemas from a .avsc or .avdl file using different naming strategies.
  • ... and more.

Install

For Linux & macOS, the simplest way is to use brew to install zoe:

brew install adevinta/homebrew-zoe/zoe

Go to the install page for instructions on other platforms.

Quickstart

# Initialize zoe configuration
zoe config init

# The generated config points to a local Kafka cluster (localhost:29092). You can edit it using the following command
zoe config edit

# You can inspect the list of clusters you have in your config
zoe -o table config clusters list

# You can now use zoe to interact with the clusters
zoe -o table topics list

Sample commands

Read the last 10 records from the input topic from the local Kafka cluster (aliases for topics and clusters are set in the configuration) :

zoe --cluster local topics consume input -n 10 

Read the last 10 records from the last 6 hours :

zoe --cluster local topics consume input -n 10 --from 'PT6h'

Filter records belonging to Kasimir :

zoe --cluster local topics consume input -n 10 \
    --from 'PT6h' \
    --filter "user.name.first == 'Kasimir'

Spin up 10 consumers in parallel :

zoe --cluster local topics consume input -n 10 \
    --from 'PT6h' \
    --filter "user.name.first == 'Kasimir' \
    --jobs 10

Offload consumption to Kubernetes pods (the target Kubernetes cluster is configured in zoe's configuration file):

zoe --runner kubernetes \
    --cluster local topics consume input -n 10 \
    --from 'PT6h' \
    --filter "user.name.first == 'Kasimir' \
    --jobs 10

Documentation

The full documentation can be found on the website.

Need help?

If you are encountering a bug or have any questions, please open a Github issue in the repository.

Maintainers

Contributors

The contributor's guide currently only shows how to build the project from source. Some docs about the architecture of Zoe and how to contribute to the project will be added soon.

More Repositories

1

maiao

Seamless GitHub PR management from the command-line
Go
110
star
2

spark-android

✨ Simple, Modular & Accessible UI Components for your Android Applications
Kotlin
41
star
3

spark

✨ Simple, Modular & Accessible UI Components for your React Applications
TypeScript
36
star
4

noe

streamline multi arch k8s runtimes
Go
31
star
5

vulcan-checks

This repository holds the code for each Vulcan check's main binary.
Go
19
star
6

spark-ios

✨ Simple, Modular & Accessible UI Components for your iOS Applications
Swift
14
star
7

vulcan-local

Scan your local assets with Vulcan-checks on your local machine or in CI/CD.
Go
8
star
8

lava

Lava is an open source vulnerability scanner that makes it easy to run security checks in your local and CI/CD environments.
Go
8
star
9

spark-website

TypeScript
6
star
10

vulcan-core-compose

Play with Vulcan without knowing the internals
Shell
5
star
11

vulcan-api

Go
5
star
12

spark-ios-snapshots

4
star
13

graph-notebook-docker

A docker image with the https://github.com/aws/graph-notebook environment
Shell
4
star
14

spark-tokens

A tool for synchronizing Spark design tokens between Figma and our three platforms (web, Android, iOS).
JavaScript
3
star
15

vulcan-scan-engine

Go
3
star
16

graph-asset-inventory-api

Security Graph - Asset Inventory API
Python
3
star
17

vulcan-local-action

Shell
2
star
18

vulcan-report

Package to store models and helper functions for generating and manipulating Vulcan reports
Go
2
star
19

vulcan-ui

TypeScript
2
star
20

vulcan-crontinuous

Go
1
star
21

vulcan-agent

Vulcan component that manages checks by communicating with their handler.
Go
1
star
22

vulnerability-db

Go
1
star
23

vulcan-metrics-client

Metrics client abstraction used in Vulcan components.
Go
1
star
24

vulcan-core-cli

Vulcan Core CLI
Go
1
star
25

vulcan-stream

Vulcan Stream provides a one-way communication channel from Vulcan Persistence to Vulcan Agents.
Go
1
star
26

vulcan-check-sdk

SDK used by Vulcan checks to track their progress, process targets, report results and communicate their status with the agent.
Go
1
star
27

beholder

Inspect and explore metrics locally
1
star
28

vulnerability-db-api

Go
1
star
29

vulcan-cicd

Shell
1
star
30

vulcan-results

Go
1
star
31

vulcan-reports-generator

Go
1
star
32

vulcan-types

A package that helps guessing the type of an asset
Go
1
star
33

lava-action

This action runs Lava in your GitHub Actions workflows.
Go
1
star
34

vulcan-checks-bsys

Scripts to build and deploy vulcan checks
Go
1
star
35

actions-lighthouseci-compare

A github action to gather the results of lighthouse ci and compare the current branch with the ancestor to catch regressions.
TypeScript
1
star