kaskade is a terminal user interface for kafka
Project description
kaskade is a tui (terminal user interface) for kafka. It is built on textual tui framework and rich lib.
For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
NOTE: This project is currently a work in progress, but usable by early adopters. textual is also a work in progress project.
Table of Contents
Installation and Usage
Install with pip:
pip install kaskade
pip
will installkaskade
andkskd
aliases.
Upgrade with pip:
pip install --upgrade kaskade
Help:
kaskade --help
Version:
kaskade --version
Run without config file (it'll take any of kaskade.yml
, kaskade.yaml
, config.yml
, config.yaml
):
kaskade
Run with config file:
kaskade my-file.yml
Running with Docker
Using docker (remember to set a network
and volume
):
docker run --rm -it --network kafka-sandbox_network \
--volume $(pwd)/config.yml:/kaskade/config.yml \
sauljabin/kaskade:latest
Aliases:
alias kaskade='docker run --rm -it --network kafka-sandbox_network \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest'
alias kskd=kaskade
These aliases will mount the current directory as a volume.
Configuration
A default yaml configuration file name can be either kaskade.yml
, kaskade.yaml
, config.yml
of config.yaml
. It supports all the configuration
on kafka consumer configuration page.
Simple connection example:
kafka:
bootstrap.servers: kafka1:9092,kafka2:9092,kafka3:9092
SSL encryption example:
kafka:
bootstrap.servers: kafka:9092
security.protocol: SSL
ssl.truststore.location: {{path}}/truststore.jks
ssl.truststore.password: {{password}}
SSL auth example:
kafka:
bootstrap.servers: kafka:9092
security.protocol: SSL
ssl.truststore.location: {{path}}/truststore.jks
ssl.truststore.password: {{password}}
ssl.keystore.location: {{path}}/keystore.jks
ssl.keystore.password: {{password}}
ssl.key.password: {{password}}
Screenshots
Alternatives
To Do
- Table pagination
- Consumed messages table
- Consumer groups table
- Consumer group lag
- Interactive search and filters
- Pop up dialog for help
- Topic size and count
- Schema registry support
Development
Installing poetry:
pip install poetry
Installing development dependencies:
poetry install
Installing pre-commit hooks:
poetry run pre-commit install
Running kaskade:
poetry run kaskade
Scripts
Running unit tests:
poetry run python -m scripts.tests
Running multi-version tests (versions):
poetry run python -m scripts.multi-version-tests
Applying code styles:
poetry run python -m scripts.styles
Running code analysis:
poetry run python -m scripts.analyze
Running code coverage:
poetry run python -m scripts.tests-coverage
Generate readme banner:
poetry run python -m scripts.banner
Docker
Build docker:
poetry run python -m scripts.docker-build
Image tag
sauljabin/kaskade:latest
.
Run with docker (create a config.yml
file):
docker run --rm -it --network kafka-sandbox_network \
--volume $(pwd)/config.yml:/kaskade/config.yml \
sauljabin/kaskade:latest
Bumping Version
Help:
poetry run python -m scripts.release --help
More info at https://python-poetry.org/docs/cli/#version and https://semver.org/.
Upgrade (major.minor.patch
):
poetry run python -m scripts.release patch
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.