summaryrefslogtreecommitdiff
path: root/python-kaskade.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-kaskade.spec')
-rw-r--r--python-kaskade.spec1028
1 files changed, 1028 insertions, 0 deletions
diff --git a/python-kaskade.spec b/python-kaskade.spec
new file mode 100644
index 0000000..613340b
--- /dev/null
+++ b/python-kaskade.spec
@@ -0,0 +1,1028 @@
+%global _empty_manifest_terminate_build 0
+Name: python-kaskade
+Version: 1.1.8
+Release: 1
+Summary: kaskade is a terminal user interface for kafka
+License: MIT
+URL: https://github.com/sauljabin/kaskade
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f3/89/82c55cf3c3f9a82b7a691fecc693ebbca6e5812b273f26648007eb3adfdc/kaskade-1.1.8.tar.gz
+BuildArch: noarch
+
+Requires: python3-PyYAML
+Requires: python3-click
+Requires: python3-confluent-kafka[json,protobuf,avro]
+Requires: python3-pyfiglet
+Requires: python3-requests
+Requires: python3-rich
+Requires: python3-textual
+Requires: python3-typing-extensions
+
+%description
+<p align="center">
+<a href="https://github.com/sauljabin/kaskade"><img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/banner.png"></a>
+</p>
+<a href="https://www.python.org/"><img alt="Python" width="60" height="20" src="https://img.shields.io/badge/-python-brightgreen?logo=python&logoColor=white"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Version" src="https://img.shields.io/pypi/v/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade"></a>
+<a href="https://libraries.io/pypi/kaskade"><img alt="Dependencies" src="https://img.shields.io/librariesio/release/pypi/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Platform" src="https://img.shields.io/badge/platform-linux%20%7C%20osx-0da5e0"></a>
+<br>
+<a href="https://kafka.apache.org/"><img alt="Kafka" width="60" height="20" src="https://img.shields.io/badge/-kafka-e3e3e3?logo=apache-kafka&logoColor=202020"></a>
+<a href="https://kafka.apache.org/"><img alt="Kafka" src="https://img.shields.io/badge/kafka-2.8%20%7C%203.0%20%7C%203.1%20%7C%203.2-blue"/></a>
+<a href="https://pypi.org/project/confluent-kafka/"><img alt="Kafka Client" src="https://img.shields.io/pypi/v/confluent-kafka?label=kafka%20client"></a>
+<br>
+<a href="https://github.com"><img alt="GitHub" width="60" height="20" src="https://img.shields.io/badge/-github-blueviolet?logo=github&logoColor=white"></a>
+<a href="https://github.com/sauljabin/kaskade/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/github/license/sauljabin/kaskade"></a>
+<a href="https://github.com/sauljabin/kaskade/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/sauljabin/kaskade/CI?label=tests"></a>
+<a href="https://app.codecov.io/gh/sauljabin/kaskade"><img alt="Codecov" src="https://img.shields.io/codecov/c/github/sauljabin/kaskade"></a>
+<br>
+<a href="https://www.docker.com/"><img alt="Docker" width="60" height="20" src="https://img.shields.io/badge/-docker-blue?logo=docker&logoColor=white"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Version (latest by date)" src="https://img.shields.io/docker/v/sauljabin/kaskade?label=tag"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Size (latest by date)" src="https://img.shields.io/docker/image-size/sauljabin/kaskade"></a>
+
+**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
+
+:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
+and [rich](https://github.com/willmcgugan/rich)!.
+
+For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
+
+# Table of Contents
+
+- [Table of Contents](#table-of-contents)
+- [Installation and Usage](#installation-and-usage)
+- [Running with Docker](#running-with-docker)
+- [Configuration](#configuration)
+ - [Kafka](#kafka)
+ - [Schema Registry](#schema-registry)
+ - [Kaskade](#kaskade)
+ - [Other Examples](#other-examples)
+- [Screenshots](#screenshots)
+- [Alternatives](#alternatives)
+- [Development](#development)
+ - [Scripts](#scripts)
+ - [Docker](#docker)
+ - [Bumping Version](#bumping-version)
+
+# Installation and Usage
+
+Install with pip:
+
+```shell
+pip install kaskade
+```
+
+> `pip` will install `kaskade` and `kskd` aliases.
+
+Upgrade with pip:
+
+```shell
+pip install --upgrade kaskade
+```
+
+Help:
+
+```shell
+kaskade --help
+```
+
+Version:
+
+```shell
+kaskade --version
+```
+
+Information, it shows app information:
+
+```shell
+kaskade --info
+```
+
+Configurations, it shows config examples:
+
+```shell
+kaskade --configs
+```
+
+Generating a default config yml file:
+
+```shell
+kaskade --yml
+```
+
+Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
+
+```shell
+kaskade
+```
+
+Run with config file:
+
+```shell
+kaskade my-config.yml
+```
+
+# Running with Docker
+
+Using docker (remember to set a `network` and `volume`):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+Aliases:
+
+```shell
+alias kaskade='docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest'
+alias kskd=kaskade
+```
+
+> These aliases will mount the current directory as a volume.
+
+# Configuration
+
+A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
+(check [Installation and Usage](#installation-and-usage) section for more information).
+
+### Kafka
+
+Simple connection example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+```
+
+SSL encryption example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+ security.protocol: SSL
+```
+
+> For more information about SSL encryption and SSL authentication go
+> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
+> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
+
+Support for env variables:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+```
+
+### Schema Registry
+
+Simple connection example:
+
+```yaml
+schema.registry:
+ url: http://localhost:8081
+```
+
+### Kaskade
+
+Next settings are optional:
+
+```yaml
+kaskade:
+ debug: off # enable debug mode, default off
+ refresh: on # enable auto-refresh, default on
+ refresh.rate: 5 # auto-refresh rate, default 5 secs
+ show.internals: off # show internal topics, default off
+```
+
+> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
+
+### Other Examples
+
+Confluent Cloud:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+ security.protocol: SASL_SSL
+ sasl.mechanism: PLAIN
+ sasl.username: ${CLUSTER_API_KEY}
+ sasl.password: ${CLUSTER_API_SECRET}
+
+schema.registry:
+ url: ${SCHEMA_REGISTRY_URL}
+ basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
+```
+
+# Screenshots
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/dashboard.png">
+</p>
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/consumer.png">
+</p>
+
+# Alternatives
+
+- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
+- wui: [[akhq](https://github.com/tchiotludo/akhq)]
+- tui: [[kcli](https://github.com/cswank/kcli)]
+
+# Development
+
+Python supported versions:
+
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade?label="></a>
+
+Installing poetry:
+
+```shell
+pip install poetry
+```
+
+Installing development dependencies:
+
+```shell
+poetry install
+```
+
+Installing pre-commit hooks:
+
+```shell
+poetry run pre-commit install
+```
+
+Running kaskade:
+
+```shell
+poetry run kaskade
+```
+
+### Scripts
+
+Running unit tests:
+
+```shell
+poetry run python -m scripts.tests
+```
+
+Applying code styles:
+
+```shell
+poetry run python -m scripts.styles
+```
+
+Running code analysis:
+
+```shell
+poetry run python -m scripts.analyze
+```
+
+Running code coverage:
+
+```shell
+poetry run python -m scripts.tests-coverage
+```
+
+Running pre-commit hooks:
+
+```shell
+poetry run python -m scripts.pre-commit
+```
+
+Generate readme banner:
+
+```shell
+poetry run python -m scripts.banner
+```
+
+### Docker
+
+Build docker:
+
+```shell
+poetry run python -m scripts.docker-build
+```
+
+> Image tag `sauljabin/kaskade:latest`.
+
+Run with docker (create a `config.yml` file):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+### Bumping Version
+
+Help:
+
+```shell
+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`):
+
+```shell
+poetry run python -m scripts.release patch
+```
+
+
+
+%package -n python3-kaskade
+Summary: kaskade is a terminal user interface for kafka
+Provides: python-kaskade
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-kaskade
+<p align="center">
+<a href="https://github.com/sauljabin/kaskade"><img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/banner.png"></a>
+</p>
+<a href="https://www.python.org/"><img alt="Python" width="60" height="20" src="https://img.shields.io/badge/-python-brightgreen?logo=python&logoColor=white"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Version" src="https://img.shields.io/pypi/v/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade"></a>
+<a href="https://libraries.io/pypi/kaskade"><img alt="Dependencies" src="https://img.shields.io/librariesio/release/pypi/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Platform" src="https://img.shields.io/badge/platform-linux%20%7C%20osx-0da5e0"></a>
+<br>
+<a href="https://kafka.apache.org/"><img alt="Kafka" width="60" height="20" src="https://img.shields.io/badge/-kafka-e3e3e3?logo=apache-kafka&logoColor=202020"></a>
+<a href="https://kafka.apache.org/"><img alt="Kafka" src="https://img.shields.io/badge/kafka-2.8%20%7C%203.0%20%7C%203.1%20%7C%203.2-blue"/></a>
+<a href="https://pypi.org/project/confluent-kafka/"><img alt="Kafka Client" src="https://img.shields.io/pypi/v/confluent-kafka?label=kafka%20client"></a>
+<br>
+<a href="https://github.com"><img alt="GitHub" width="60" height="20" src="https://img.shields.io/badge/-github-blueviolet?logo=github&logoColor=white"></a>
+<a href="https://github.com/sauljabin/kaskade/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/github/license/sauljabin/kaskade"></a>
+<a href="https://github.com/sauljabin/kaskade/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/sauljabin/kaskade/CI?label=tests"></a>
+<a href="https://app.codecov.io/gh/sauljabin/kaskade"><img alt="Codecov" src="https://img.shields.io/codecov/c/github/sauljabin/kaskade"></a>
+<br>
+<a href="https://www.docker.com/"><img alt="Docker" width="60" height="20" src="https://img.shields.io/badge/-docker-blue?logo=docker&logoColor=white"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Version (latest by date)" src="https://img.shields.io/docker/v/sauljabin/kaskade?label=tag"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Size (latest by date)" src="https://img.shields.io/docker/image-size/sauljabin/kaskade"></a>
+
+**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
+
+:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
+and [rich](https://github.com/willmcgugan/rich)!.
+
+For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
+
+# Table of Contents
+
+- [Table of Contents](#table-of-contents)
+- [Installation and Usage](#installation-and-usage)
+- [Running with Docker](#running-with-docker)
+- [Configuration](#configuration)
+ - [Kafka](#kafka)
+ - [Schema Registry](#schema-registry)
+ - [Kaskade](#kaskade)
+ - [Other Examples](#other-examples)
+- [Screenshots](#screenshots)
+- [Alternatives](#alternatives)
+- [Development](#development)
+ - [Scripts](#scripts)
+ - [Docker](#docker)
+ - [Bumping Version](#bumping-version)
+
+# Installation and Usage
+
+Install with pip:
+
+```shell
+pip install kaskade
+```
+
+> `pip` will install `kaskade` and `kskd` aliases.
+
+Upgrade with pip:
+
+```shell
+pip install --upgrade kaskade
+```
+
+Help:
+
+```shell
+kaskade --help
+```
+
+Version:
+
+```shell
+kaskade --version
+```
+
+Information, it shows app information:
+
+```shell
+kaskade --info
+```
+
+Configurations, it shows config examples:
+
+```shell
+kaskade --configs
+```
+
+Generating a default config yml file:
+
+```shell
+kaskade --yml
+```
+
+Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
+
+```shell
+kaskade
+```
+
+Run with config file:
+
+```shell
+kaskade my-config.yml
+```
+
+# Running with Docker
+
+Using docker (remember to set a `network` and `volume`):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+Aliases:
+
+```shell
+alias kaskade='docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest'
+alias kskd=kaskade
+```
+
+> These aliases will mount the current directory as a volume.
+
+# Configuration
+
+A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
+(check [Installation and Usage](#installation-and-usage) section for more information).
+
+### Kafka
+
+Simple connection example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+```
+
+SSL encryption example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+ security.protocol: SSL
+```
+
+> For more information about SSL encryption and SSL authentication go
+> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
+> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
+
+Support for env variables:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+```
+
+### Schema Registry
+
+Simple connection example:
+
+```yaml
+schema.registry:
+ url: http://localhost:8081
+```
+
+### Kaskade
+
+Next settings are optional:
+
+```yaml
+kaskade:
+ debug: off # enable debug mode, default off
+ refresh: on # enable auto-refresh, default on
+ refresh.rate: 5 # auto-refresh rate, default 5 secs
+ show.internals: off # show internal topics, default off
+```
+
+> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
+
+### Other Examples
+
+Confluent Cloud:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+ security.protocol: SASL_SSL
+ sasl.mechanism: PLAIN
+ sasl.username: ${CLUSTER_API_KEY}
+ sasl.password: ${CLUSTER_API_SECRET}
+
+schema.registry:
+ url: ${SCHEMA_REGISTRY_URL}
+ basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
+```
+
+# Screenshots
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/dashboard.png">
+</p>
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/consumer.png">
+</p>
+
+# Alternatives
+
+- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
+- wui: [[akhq](https://github.com/tchiotludo/akhq)]
+- tui: [[kcli](https://github.com/cswank/kcli)]
+
+# Development
+
+Python supported versions:
+
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade?label="></a>
+
+Installing poetry:
+
+```shell
+pip install poetry
+```
+
+Installing development dependencies:
+
+```shell
+poetry install
+```
+
+Installing pre-commit hooks:
+
+```shell
+poetry run pre-commit install
+```
+
+Running kaskade:
+
+```shell
+poetry run kaskade
+```
+
+### Scripts
+
+Running unit tests:
+
+```shell
+poetry run python -m scripts.tests
+```
+
+Applying code styles:
+
+```shell
+poetry run python -m scripts.styles
+```
+
+Running code analysis:
+
+```shell
+poetry run python -m scripts.analyze
+```
+
+Running code coverage:
+
+```shell
+poetry run python -m scripts.tests-coverage
+```
+
+Running pre-commit hooks:
+
+```shell
+poetry run python -m scripts.pre-commit
+```
+
+Generate readme banner:
+
+```shell
+poetry run python -m scripts.banner
+```
+
+### Docker
+
+Build docker:
+
+```shell
+poetry run python -m scripts.docker-build
+```
+
+> Image tag `sauljabin/kaskade:latest`.
+
+Run with docker (create a `config.yml` file):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+### Bumping Version
+
+Help:
+
+```shell
+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`):
+
+```shell
+poetry run python -m scripts.release patch
+```
+
+
+
+%package help
+Summary: Development documents and examples for kaskade
+Provides: python3-kaskade-doc
+%description help
+<p align="center">
+<a href="https://github.com/sauljabin/kaskade"><img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/banner.png"></a>
+</p>
+<a href="https://www.python.org/"><img alt="Python" width="60" height="20" src="https://img.shields.io/badge/-python-brightgreen?logo=python&logoColor=white"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Version" src="https://img.shields.io/pypi/v/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade"></a>
+<a href="https://libraries.io/pypi/kaskade"><img alt="Dependencies" src="https://img.shields.io/librariesio/release/pypi/kaskade"></a>
+<a href="https://pypi.org/project/kaskade"><img alt="Platform" src="https://img.shields.io/badge/platform-linux%20%7C%20osx-0da5e0"></a>
+<br>
+<a href="https://kafka.apache.org/"><img alt="Kafka" width="60" height="20" src="https://img.shields.io/badge/-kafka-e3e3e3?logo=apache-kafka&logoColor=202020"></a>
+<a href="https://kafka.apache.org/"><img alt="Kafka" src="https://img.shields.io/badge/kafka-2.8%20%7C%203.0%20%7C%203.1%20%7C%203.2-blue"/></a>
+<a href="https://pypi.org/project/confluent-kafka/"><img alt="Kafka Client" src="https://img.shields.io/pypi/v/confluent-kafka?label=kafka%20client"></a>
+<br>
+<a href="https://github.com"><img alt="GitHub" width="60" height="20" src="https://img.shields.io/badge/-github-blueviolet?logo=github&logoColor=white"></a>
+<a href="https://github.com/sauljabin/kaskade/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/github/license/sauljabin/kaskade"></a>
+<a href="https://github.com/sauljabin/kaskade/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/sauljabin/kaskade/CI?label=tests"></a>
+<a href="https://app.codecov.io/gh/sauljabin/kaskade"><img alt="Codecov" src="https://img.shields.io/codecov/c/github/sauljabin/kaskade"></a>
+<br>
+<a href="https://www.docker.com/"><img alt="Docker" width="60" height="20" src="https://img.shields.io/badge/-docker-blue?logo=docker&logoColor=white"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Version (latest by date)" src="https://img.shields.io/docker/v/sauljabin/kaskade?label=tag"></a>
+<a href="https://hub.docker.com/r/sauljabin/kaskade"><img alt="Docker Image Size (latest by date)" src="https://img.shields.io/docker/image-size/sauljabin/kaskade"></a>
+
+**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
+
+:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
+and [rich](https://github.com/willmcgugan/rich)!.
+
+For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
+
+# Table of Contents
+
+- [Table of Contents](#table-of-contents)
+- [Installation and Usage](#installation-and-usage)
+- [Running with Docker](#running-with-docker)
+- [Configuration](#configuration)
+ - [Kafka](#kafka)
+ - [Schema Registry](#schema-registry)
+ - [Kaskade](#kaskade)
+ - [Other Examples](#other-examples)
+- [Screenshots](#screenshots)
+- [Alternatives](#alternatives)
+- [Development](#development)
+ - [Scripts](#scripts)
+ - [Docker](#docker)
+ - [Bumping Version](#bumping-version)
+
+# Installation and Usage
+
+Install with pip:
+
+```shell
+pip install kaskade
+```
+
+> `pip` will install `kaskade` and `kskd` aliases.
+
+Upgrade with pip:
+
+```shell
+pip install --upgrade kaskade
+```
+
+Help:
+
+```shell
+kaskade --help
+```
+
+Version:
+
+```shell
+kaskade --version
+```
+
+Information, it shows app information:
+
+```shell
+kaskade --info
+```
+
+Configurations, it shows config examples:
+
+```shell
+kaskade --configs
+```
+
+Generating a default config yml file:
+
+```shell
+kaskade --yml
+```
+
+Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
+
+```shell
+kaskade
+```
+
+Run with config file:
+
+```shell
+kaskade my-config.yml
+```
+
+# Running with Docker
+
+Using docker (remember to set a `network` and `volume`):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+Aliases:
+
+```shell
+alias kaskade='docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest'
+alias kskd=kaskade
+```
+
+> These aliases will mount the current directory as a volume.
+
+# Configuration
+
+A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
+(check [Installation and Usage](#installation-and-usage) section for more information).
+
+### Kafka
+
+Simple connection example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+```
+
+SSL encryption example:
+
+```yaml
+kafka:
+ bootstrap.servers: localhost:9092
+ security.protocol: SSL
+```
+
+> For more information about SSL encryption and SSL authentication go
+> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
+> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
+
+Support for env variables:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+```
+
+### Schema Registry
+
+Simple connection example:
+
+```yaml
+schema.registry:
+ url: http://localhost:8081
+```
+
+### Kaskade
+
+Next settings are optional:
+
+```yaml
+kaskade:
+ debug: off # enable debug mode, default off
+ refresh: on # enable auto-refresh, default on
+ refresh.rate: 5 # auto-refresh rate, default 5 secs
+ show.internals: off # show internal topics, default off
+```
+
+> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
+
+### Other Examples
+
+Confluent Cloud:
+
+```yaml
+kafka:
+ bootstrap.servers: ${BOOTSTRAP_SERVERS}
+ security.protocol: SASL_SSL
+ sasl.mechanism: PLAIN
+ sasl.username: ${CLUSTER_API_KEY}
+ sasl.password: ${CLUSTER_API_SECRET}
+
+schema.registry:
+ url: ${SCHEMA_REGISTRY_URL}
+ basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
+```
+
+# Screenshots
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/dashboard.png">
+</p>
+
+<p align="center">
+<img alt="kaskade" src="https://raw.githubusercontent.com/sauljabin/kaskade/main/screenshots/consumer.png">
+</p>
+
+# Alternatives
+
+- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
+- wui: [[akhq](https://github.com/tchiotludo/akhq)]
+- tui: [[kcli](https://github.com/cswank/kcli)]
+
+# Development
+
+Python supported versions:
+
+<a href="https://pypi.org/project/kaskade"><img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/kaskade?label="></a>
+
+Installing poetry:
+
+```shell
+pip install poetry
+```
+
+Installing development dependencies:
+
+```shell
+poetry install
+```
+
+Installing pre-commit hooks:
+
+```shell
+poetry run pre-commit install
+```
+
+Running kaskade:
+
+```shell
+poetry run kaskade
+```
+
+### Scripts
+
+Running unit tests:
+
+```shell
+poetry run python -m scripts.tests
+```
+
+Applying code styles:
+
+```shell
+poetry run python -m scripts.styles
+```
+
+Running code analysis:
+
+```shell
+poetry run python -m scripts.analyze
+```
+
+Running code coverage:
+
+```shell
+poetry run python -m scripts.tests-coverage
+```
+
+Running pre-commit hooks:
+
+```shell
+poetry run python -m scripts.pre-commit
+```
+
+Generate readme banner:
+
+```shell
+poetry run python -m scripts.banner
+```
+
+### Docker
+
+Build docker:
+
+```shell
+poetry run python -m scripts.docker-build
+```
+
+> Image tag `sauljabin/kaskade:latest`.
+
+Run with docker (create a `config.yml` file):
+
+```shell
+docker run --rm -it --network kafka \
+--volume $(pwd):/kaskade \
+sauljabin/kaskade:latest
+```
+
+### Bumping Version
+
+Help:
+
+```shell
+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`):
+
+```shell
+poetry run python -m scripts.release patch
+```
+
+
+
+%prep
+%autosetup -n kaskade-1.1.8
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-kaskade -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.8-1
+- Package Spec generated