Выпуск kafkalet 0.1, десктопного клиента для Apache Kafka

Опубликован выпуск kafkalet 0.1, десктопного графического клиента для работы с Apache Kafka. Приложение поставляется в виде самодостаточного бинарного файла размером около 15 МБ, не требует установки JVM, Docker или запуска серверных компонентов. Код проекта написан на Go и TypeScript и распространяется под лицензией MIT. Сборки подготовлены для macOS (Intel и Apple Silicon), Windows и Linux.

В отличие от существующих веб-ориентированных инструментов, таких как Kafka UI и AKHQ, требующих развёртывания серверного процесса в Docker, kafkalet работает как обычное десктопное приложение — аналогично DBeaver или DataGrip для баз данных. Единственным десктопным Kafka-клиентом до сих пор оставался Offset Explorer (ранее Kafka Tool), написанный на Java и давно не обновлявшийся.
Приложение kafkalet построено на базе фреймворка Wails v2, объединяющего Go-бэкенд с веб-интерфейсом на React 18, TypeScript и shadcn/ui в единый нативный бинарный файл. Для взаимодействия с Kafka используется библиотека franz-go, реализованная на чистом Go без зависимости от librdkafka и CGO.

Основные возможности:

  • Система профилей для управления несколькими окружениями (production, staging, dev). Каждый брокер в профиле может иметь несколько именованных учётных записей с возможностью быстрого переключения. Пароли и токены хранятся исключительно в системном хранилище секретов ОС (macOS Keychain, Windows Credential Manager, libsecret на Linux) и не записываются в конфигурационные файлы.
  • Режим Observer — чтение сообщений из топика без подключения к consumer group, без коммита смещений и без побочных эффектов на кластере. Отдельный режим Consumer позволяет подключиться к группе и зафиксировать смещения вручную.
  • Навигация по времени (seek to timestamp) — переход к сообщениям по указанной дате и времени без необходимости вычислять смещения вручную.
    Поддержка методов аутентификации: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (статический токен и client credentials flow), TLS с проверкой сертификата сервера, mTLS (взаимная аутентификация по сертификатам).

  • Потоковый просмотр сообщений с regex-фильтрацией по ключам и значениям в реальном времени. Поддерживается одновременное наблюдение за несколькими топиками в отдельных вкладках. Виртуализация списка позволяет отображать более 50 000 сообщений без снижения производительности.
  • Управление топиками: создание, удаление, изменение конфигурационных параметров, просмотр разделов, лидеров и набора синхронизированных реплик (ISR).

  • Управление consumer groups: просмотр отставания (lag) по разделам, сброс смещений на earliest, latest или конкретную временную метку, просмотр участников группы (client ID, хост, назначенные топики), удаление групп.
  • Отправка сообщений с указанием ключа, значения, заголовков и целевого раздела.

  • Организация топиков: закрепление часто используемых топиков, группировка в именованные папки, поиск с поддержкой регулярных выражений и фильтрацией по минимальному числу разделов.
  • Экспорт буфера сообщений в формате JSON или CSV.
  • Интеграция с Confluent Schema Registry для автоматического декодирования сообщений в формате Avro.
  • Система JavaScript-плагинов для пользовательского декодирования сообщений (Protobuf, MessagePack и другие форматы).
  • Импорт и экспорт настроек в формате JSON, включая профили, группы топиков и закреплённые топики.

Источник: http://www.opennet.ru/opennews/art.shtml?num=64916