All Projects → devshawn → kafka-shell

devshawn / kafka-shell

Licence: Apache-2.0 license
⚡A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to kafka-shell

Hudi Resources
汇总Apache Hudi相关资料
Stars: ✭ 79 (-26.17%)
Mutual labels:  apache, stream-processing
godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-85.98%)
Mutual labels:  streams, stream-processing
Examples
Demo applications and code examples for Confluent Platform and Apache Kafka
Stars: ✭ 571 (+433.64%)
Mutual labels:  stream-processing, confluent
kerala
Distributed KV Streams
Stars: ✭ 16 (-85.05%)
Mutual labels:  streams, stream-processing
Go Streams
A lightweight stream processing library for Go
Stars: ✭ 615 (+474.77%)
Mutual labels:  streams, stream-processing
Kafka Streams
equivalent to kafka-streams 🐙 for nodejs ✨🐢🚀✨
Stars: ✭ 613 (+472.9%)
Mutual labels:  streams, stream-processing
stream-registry
Stream Discovery and Stream Orchestration
Stars: ✭ 105 (-1.87%)
Mutual labels:  streams, stream-processing
Logrange
High performance data aggregating storage
Stars: ✭ 181 (+69.16%)
Mutual labels:  streams, stream-processing
srclient
Golang Client for Schema Registry
Stars: ✭ 188 (+75.7%)
Mutual labels:  apache, confluent
octofetch
Github user information on terminal :D
Stars: ✭ 65 (-39.25%)
Mutual labels:  prompt
java-core
Collections of solutions for micro-tasks created while building modules as part of project. Also has very fun stuffs :)
Stars: ✭ 35 (-67.29%)
Mutual labels:  streams
monogram
Aspect-oriented layer on top of the MongoDB Node.js driver
Stars: ✭ 76 (-28.97%)
Mutual labels:  streams
openwhisk-runtime-go
Apache OpenWhisk Runtime Go supports Apache OpenWhisk functions written in Go
Stars: ✭ 31 (-71.03%)
Mutual labels:  apache
JavaCertification
This is a full resource guide for my attempt to get Java 11 Certified
Stars: ✭ 67 (-37.38%)
Mutual labels:  streams
uima-uimaj
Apache UIMA Java SDK
Stars: ✭ 50 (-53.27%)
Mutual labels:  apache
implyr
SQL backend to dplyr for Impala
Stars: ✭ 74 (-30.84%)
Mutual labels:  apache
CVE-2021-41773 CVE-2021-42013
Apache HTTP Server 2.4.49, 2.4.50 - Path Traversal & RCE
Stars: ✭ 20 (-81.31%)
Mutual labels:  apache
kafka-workers
Kafka Workers is a client library which unifies records consuming from Kafka and processing them by user-defined WorkerTasks.
Stars: ✭ 30 (-71.96%)
Mutual labels:  stream-processing
go-streams
Stream Collections for Go. Inspired in Java 8 Streams and .NET Linq
Stars: ✭ 127 (+18.69%)
Mutual labels:  streams
ramen
A stream processing language and compiler for small-scale monitoring
Stars: ✭ 14 (-86.92%)
Mutual labels:  stream-processing

kafka-shell

Build Status codecov PyPI PyPI - Python Version License

A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.

Kafka shell allows you to configure a list of clusters, and properties such as --bootstrap-server and --zookeeper for the currently selected cluster will automatically be added when the command is run. No more remembering long server addresses or ports!

Installation

Kafka shell requires python and pip. Kafka shell is a wrapper over the existing Kafka command-line tools, so those must exist within your PATH.

You can install kafka-shell using pip:

pip install kafka-shell

Usage

Kafka shell is an interactive shell. You can run it from the terminal by:

kafka-shell

From here, you can start typing kafka and the autocomplete will kick in.

Key Commands

  • Change Cluster: The selected cluster commands are run against can be cycled through by pressing F2.
  • Fuzzy Search: By default, fuzzy search of commands is enabled. This can be toggled on & off by pressing F3.
  • In-line Help: By default, in-line help is shown along side the drop-down suggestion list. This can be toggled on & off by pressing F9.
  • Exit: The shell can be exited by pressing F10 or by typing exit.

Configuration

Kafka shell allows you to configure settings and Kafka clusters to run commands against through a configuration file.

By default, when kafka-shell is first run, a directory in your home directory is generated at ~/.kafka-shell. A configuration file called config.yaml is generated in that new folder. It is a YAML file containing details about clusters, kafka-shell configuration, and more.

See CONFIGURATION.md to add a cluster to your configuration or to set other kafka-shell settings.

Features

Kafka shell simplifies running complex Kafka CLI commands as well as provides smart auto-completion of commands, options, and more. /Users/shawn/.kafka-shell/config.yaml

  • Auto-completion of commands, options, and configurations
  • Configure clusters to run commands against and switch between them
  • Fish-style auto suggestions
  • Command history
  • Contextual help
  • Toolbar options

Completion of Configurations

Auto completion of Kafka configuration keys and their values.

Configure Clusters, Schema Registries, & More

Configure clusters and their properties will automatically be added to commands being run.

Supported Commands

Currently, the following commands are supported:

  • kafka-topics
  • kafka-configs
  • kafka-console-consumer
  • kafka-console-producer
  • kafka-avro-console-consumer
  • kafka-avro-console-producer
  • kafka-verifiable-consumer
  • kafka-verifiable-producer
  • kafka-preferred-replica-election
  • kafka-replica-verification
  • kafka-reassign-partitions
  • kafka-broker-api-versions
  • kafka-consumer-groups
  • kafka-delete-records
  • kafka-log-dirs
  • kafka-dump-log
  • kafka-acls
  • ksql

Helper Commands

Currently, kafka-shell has helper commands:

  • exit: exit the shell
  • clear: clear the shell
  • cluster-select: select a cluster
  • cluster-describe: describe a cluster config

In-line help for each command and option is shown by default. This can be toggled by F9.

Contributing

Contributions are very welcome. See CONTRIBUTING.md for details.

Acknowledgement

This project was inspired by multiple amazing shells & prompts, such as saws, kube-shell, kube-prompt, http-prompt, and wharfee. It was built using prompt-toolkit. Much ❤️ to Apache Kafka and Confluent for their helpful CLI tools.

License

Copyright (c) 2019 Shawn Seymour.

Licensed under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].