Skip to main content

kaskade is a terminal user interface for kafka

Project description

kaskade

GitHub donate Libraries.io dependency status for latest release MIT License Pypi Version Homebrew Version Docker Version Platform Python Versions

Kaskade

Kaskade is a text user interface (TUI) for Apache Kafka, built with Textual by Textualize. It includes features like:

  • Admin:
    • List topics, partitions, groups and group members.
    • Topic information like lag, replicas and records count.
    • Create, edit and delete topics.
    • Filter topics by name.
  • Consumer:
    • Json, string, integer, long, float, boolean and double deserialization.
    • Filter by key, value, header and/or partition.
    • Schema Registry support with avro.
    • Protobuf deserialization support.

Screenshots

kaskade kaskade
kaskade kaskade

Installation

Install it with brew:

brew install kaskade

brew installation.

Install it with pipx:

pipx install kaskade

pipx installation.

Running kaskade

Admin view:

kaskade admin -b my-kafka:9092

Consumer view:

kaskade consumer -b my-kafka:9092 -t my-topic

Configuration examples

Multiple bootstrap servers:

kaskade admin -b my-kafka:9092,my-kafka:9093

Consume and deserialize:

kaskade consumer -b my-kafka:9092 -t my-topic -k json -v json

Consuming from the beginning:

kaskade consumer -b my-kafka:9092 -t my-topic -x auto.offset.reset=earliest

Schema registry simple connection and avro deserialization:

kaskade consumer -b my-kafka:9092 \
        -s url=http://my-schema-registry:8081 \
        -t my-topic -k avro -v avro

For more information about Schema Registry configurations go to: Confluent Schema Registry client.

SSL encryption example:

kaskade admin -b my-kafka:9092 -x security.protocol=SSL

For more information about SSL encryption and SSL authentication go to: SSL support in librdkafka.

Confluent cloud admin and consumer:

kaskade admin -b ${BOOTSTRAP_SERVERS} \
        -x security.protocol=SASL_SSL \
        -x sasl.mechanism=PLAIN \
        -x sasl.username=${CLUSTER_API_KEY} \
        -x sasl.password=${CLUSTER_API_SECRET}
kaskade consumer -b ${BOOTSTRAP_SERVERS} \
        -x security.protocol=SASL_SSL \
        -x sasl.mechanism=PLAIN \
        -x sasl.username=${CLUSTER_API_KEY} \
        -x sasl.password=${CLUSTER_API_SECRET} \
        -s url=${SCHEMA_REGISTRY_URL} \
        -s basic.auth.user.info=${SR_API_KEY}:${SR_API_SECRET} \
        -t my-topic \
        -k string \
        -v avro

More about confluent cloud configuration at: Kafka Client Quick Start for Confluent Cloud.

Running with docker:

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

Protobuf consumer:

Install protoc command:

brew install protobuf

Generate a Descriptor 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 using my-descriptor.desc file:

kaskade consumer -b my-kafka:9092 -x auto.offset.reset=earliest \
        -k string -v protobuf \
        -t my-protobuf-topic \
        -p descriptor=my-descriptor.desc -p value=mypackage.MyMessage

More about protobuf and FileDescriptorSet at: Protocol Buffers Documentation.

Development

For development instructions see DEVELOPMENT.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kaskade-2.3.6.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

kaskade-2.3.6-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file kaskade-2.3.6.tar.gz.

File metadata

  • Download URL: kaskade-2.3.6.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kaskade-2.3.6.tar.gz
Algorithm Hash digest
SHA256 3f65859dc2f303a8c61787e113db12afe8e458d0e9fb607426c892e3be153032
MD5 e76a25b3f2a010eb3e504b1e1239ce13
BLAKE2b-256 824152505808e039f11fe60a61286c2e7728c0f25a7efea2b37e3bf1a8f9a2a5

See more details on using hashes here.

Provenance

File details

Details for the file kaskade-2.3.6-py3-none-any.whl.

File metadata

  • Download URL: kaskade-2.3.6-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kaskade-2.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 cfef78eafff7ad1bfa07e1a1517ca78544a39d2fe30ca224566e2d26ca43295d
MD5 d8b89c3779a9dd8374ff6694505509b0
BLAKE2b-256 38681d8f4b2b16cbac1e6c37919156231cdff23e2dda16789579d04ec2993cd4

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page