Вышел открытый десктопный клиент kafkalet для Apache Kafka Обложка: Skyread

Вышел открытый десктопный клиент kafkalet для Apache Kafka

Новости
Главное:

  • Представлен kafkalet — новый десктопный клиент для Apache Kafka с открытым исходным кодом, написанный на Go и TypeScript.
  • Приложение не требует JVM, Docker или запуска серверных компонентов и поставляется в виде самодостаточного бинарника размером около 15 МБ.
  • kafkalet поддерживает множество функций: управление профилями, режимы Observer и Consumer, аутентификацию, фильтрацию сообщений, работу с топиками и consumer groups, а также интеграцию с Confluent Schema Registry.

Недавно был анонсирован проект kafkalet — пользовательский десктопный клиент для работы с Apache Kafka, открытый и распространяемый под лицензией MIT. Это приложение представляет собой самостоятельный бинарный файл приблизительно 15 МБ, доступный для macOS (Intel и Apple Silicon), Windows и Linux. Важным достоинством решения является отсутствие необходимости установки Java Virtual Machine, Docker или запуска серверных компонентов, что выгодно отличает kafkalet от существующих веб-ориентированных инструментов, таких как Kafka UI и AKHQ, требующих развёртывания серверов в контейнерах.

Принципиально новое приложение напоминает по использованию настольные клиенты для баз данных — например, DBeaver или DataGrip. Ранее единственным подобным клиентом оставался Offset Explorer (ранее Kafka Tool), написанный на Java, однако он давно не обновлялся и не поддерживал современные требования.

kafkalet построен на базе фреймворка Wails v2, который объединяет бекенд на Go с фронтендом на React 18, TypeScript и shadcn/ui. Для взаимодействия с Kafka используется библиотека franz-go, полностью написанная на Go, без зависимости от librdkafka и CGO, что повышает кроссплатформенность и надёжность.

Среди ключевых возможностей kafkalet выделяются: система профилей для работы с несколькими окружениями (production, staging, dev) с безопасным хранением учётных данных в системных хранилищах секретов ОС. Пользователь может переключаться между именованными аккаунтами для отдельных брокеров.

Приложение поддерживает режим Observer — чтение сообщений из топика без подключения к consumer group и без фиксации смещений, а также полноценный режим Consumer с управлением смещениями вручную. Для навигации по сообщениям используется функция перехода к определённой временной метке, что значительно упрощает анализ логов и событий.

Большое внимание уделено безопасности: реализована поддержка различных методов аутентификации (SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER, TLS с проверкой сертификата, взаимная аутентификация mTLS). Для анализа данных реализована фильтрация через регулярные выражения, просмотр сообщений в реальном времени и работа с несколькими топиками одновременно. Виртуализация списков обеспечивает вывод до 50 000 сообщений без потери производительности.

Инструмент предоставляет расширенные возможности управления топиками и consumer groups: создание и удаление топиков, настройка конфигураций, просмотр разделов и лидеров, анализ отставания групп, сброс смещений по времени, удаление групп. Также реализована поддержка отправки сообщений с указанием ключа, значения, заголовков и выбором раздела.

Для удобства пользователей введены функции организации топиков — закрепление важных и группировка в папки, а также расширенный поиск с использованием регулярных выражений. Данные можно экспортировать в JSON или CSV. Важным дополнением является интеграция с Confluent Schema Registry для автоматической декодировки сообщений в формате Avro, а также система JavaScript-плагинов для пользовательского декодирования других форматов, таких как Protobuf и MessagePack.

Поддерживается импорт и экспорт настроек в формате JSON, что облегчает обмен конфигурациями и ускоряет работу в разных средах.

Таким образом, kafkalet является современным, удобным и функциональным десктопным клиентом для Apache Kafka, который может заинтересовать системных администраторов, разработчиков и инженеров, работающих с высоконагруженными потоковыми данными. За счёт отсутствия зависимости от JVM и сервера он обещает стать гибким и лёгким в использовании инструментом для различных операционных систем.

Tagged