Опубликован выпуск 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 брелок, 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, включаючи профілі, групи топіків та закріплені топіки.
Джерело: opennet.ru
