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.1.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: kaskade-2.3.1.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for kaskade-2.3.1.tar.gz
Algorithm Hash digest
SHA256 14a60112d8e145bcbf045aae53b014c6e744d850d8f299a363aa6e9639430476
MD5 0ea40ebf63303ed24754aeb9277f3313
BLAKE2b-256 93fe0215266efcf9c1df7f0dcabf3eee2c179ba18cab4b0306badaf993fe4ed7

See more details on using hashes here.

Provenance

File details

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

File metadata

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

File hashes

Hashes for kaskade-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb178d4d2ca28455e18c5bed3a26e0eac67725cf5ad821cd287d433e813a0965
MD5 558c91c41b57780de4c3609e42d337b7
BLAKE2b-256 63521c67bcf79d92f3deaf4d0f01c91eb70625a215594e2c2563e5618b81ae00

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