Publishes release of kafkalet 0.1, a desktop graphical client for working with Apache Kafka. The application comes as a self-contained binary file of approximately 15 MB and does not require installing the JVM, Docker, or running server components. The project code is written in Go and TypeScript and is distributed under the MIT license. Builds prepared for macOS (Intel and Apple Silicon), Windows, and Linux.
Unlike existing web-based tools such as Kafka UI and AKHQ, which require deploying a server process in Docker, kafkalet functions as a regular desktop application similar to DBeaver or DataGrip for databases. Prior to this release, the only desktop Kafka client available was Offset Explorer (formerly Kafka Tool), which was written in Java and had not been updated for a considerable amount of time.
The kafkalet application is built on the Wails v2 framework, which combines a Go backend with a web interface in React 18, TypeScript, and shadcn/ui into a single native binary file. To interact with Kafka, the franz-go library is utilized, implemented in pure Go without dependence on librdkafka and CGO.
Main features include:
- Profile system for managing multiple environments (production, staging, dev). Each profile can have several named accounts with the ability to quickly switch. Passwords and tokens are securely stored in the OS system secret storage (macOS Keychain, Windows Credential Manager, libsecret on Linux) and are not written to configuration files.
- Observer mode allows reading messages from a topic without connecting to the consumer group, committing offsets, or impacting the cluster. A separate Consumer mode enables manual offset fixing.
- Navigation by time (seek to timestamp) feature enables jumping to messages based on a specified date and time without the need to calculate offsets manually. Support for authentication methods includes SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER, TLS with server certificate verification, and mTLS.
- Stream viewing of messages with regex filtering by keys and values in real time. Multiple topics can be monitored simultaneously in separate tabs. List virtualization allows