- Notifications
You must be signed in to change notification settings - Fork18
kaskade is a text user interface for kafka, which allows you to interact and consume topics from your terminal in style!
License
sauljabin/kaskade
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Kaskade is a text user interface (TUI) for Apache Kafka, built withTextualbyTextualize.
It includes features like:
- List topics, partitions, groups and group members.
- Topic information like lag, replicas and records count.
- Create, edit and delete topics.
- Filter topics by name.
- Json, string, integer, long, float, boolean and double deserialization.
- Filter by key, value, header and/or partition.
- Schema Registry support for avro and json.
- Protobuf deserialization support without Schema Registry.
- Avro deserialization without Schema Registry.
Kaskade does not include:
- Schema Registry for protobuf.
- Runtime auto-refresh.
![]() | ![]() |
![]() | ![]() |
brew install kaskade
pipx install kaskade
kaskade admin -b my-kafka:9092
kaskade consumer -b my-kafka:9092 -t my-topic
kaskade admin -b my-kafka:9092,my-kafka:9093
kaskade consumer -b my-kafka:9092 -t my-json-topic -k json -v json
Supported deserializers
[bytes, boolean, string, long, integer, double, float, json, avro, protobuf, registry]
kaskade consumer -b my-kafka:9092 -t my-topic --from-beginning
kaskade consumer -b my-kafka:9092 -t my-avro-topic \ -k registry -v registry \ --registry url=http://my-schema-registry:8081
For more information about Schema Registry configurations goto:Confluent Schema Registry client.
kaskade consumer -b my-kafka:9092 -t my-avro-topic \ -k registry -v registry \ --registry url=http://my-apicurio-registry:8081/apis/ccompat/v7
For more about apicurio go to:Apicurio registry.
kaskade admin -b my-kafka:9092 -c security.protocol=SSL
For more information about SSL encryption and SSL authentication goto:Configure librdkafka client.
kaskade admin -b${BOOTSTRAP_SERVERS} \ -c security.protocol=SASL_SSL \ -c sasl.mechanism=PLAIN \ -c sasl.username=${CLUSTER_API_KEY} \ -c sasl.password=${CLUSTER_API_SECRET}
kaskade consumer -b${BOOTSTRAP_SERVERS} -t my-avro-topic \ -k string -v registry \ -c security.protocol=SASL_SSL \ -c sasl.mechanism=PLAIN \ -c sasl.username=${CLUSTER_API_KEY} \ -c sasl.password=${CLUSTER_API_SECRET} \ --registry url=${SCHEMA_REGISTRY_URL} \ --registry basic.auth.user.info=${SR_API_KEY}:${SR_API_SECRET}
More about confluent cloud configurationat:Kafka client quick start for Confluent Cloud.
docker run --rm -it --network my-networtk sauljabin/kaskade:latest \ admin -b my-kafka:9092
docker run --rm -it --network my-networtk sauljabin/kaskade:latest \ consumer -b my-kafka:9092 -t my-topic
Consume usingmy-schema.avsc
file:
kaskade consumer -b my-kafka:9092 --from-beginning \ -k string -v avro \ -t my-avro-topic \ --avro value=my-schema.avsc
Installprotoc
command:
brew install protobuf
Generate aDescriptor Set file from your.proto
file:
protoc --include_imports \ --descriptor_set_out=my-descriptor.desc \ --proto_path=${PROTO_PATH} \${PROTO_PATH}/my-proto.proto
Consume usingmy-descriptor.desc
file:
kaskade consumer -b my-kafka:9092 --from-beginning \ -k string -v protobuf \ -t my-protobuf-topic \ --protobuf descriptor=my-descriptor.desc \ --protobuf value=mypackage.MyMessage
More about protobuf and
FileDescriptorSet
at:Protocol Buffers documentation.
For Q&A go toGitHub Discussions.
For development instructions seeDEVELOPMENT.md.
About
kaskade is a text user interface for kafka, which allows you to interact and consume topics from your terminal in style!