Se ha publicado la versión 0.1 de kafkalet, un cliente gráfico de escritorio para trabajar con Apache Kafka. La aplicación se distribuye como un archivo binario autónomo de aproximadamente 15 MB, sin necesidad de instalar JVM, Docker o iniciar componentes de servidor. El código del proyecto está escrito en Go y TypeScript y se distribuye bajo la licencia MIT. Las compilaciones están preparadas para macOS (Intel y Apple Silicon), Windows y Linux.
A diferencia de las herramientas web existentes, como Kafka UI y AKHQ, que requieren el despliegue de un proceso de servidor en Docker, kafkalet funciona como una aplicación de escritorio normal, similar a DBeaver o DataGrip para bases de datos. El único cliente de Kafka de escritorio hasta ahora había sido Offset Explorer (anteriormente Kafka Tool), escrito en Java, que no se ha actualizado en mucho tiempo. La aplicación kafkalet está construida sobre el marco Wails v2, que combina un backend en Go con una interfaz web en React 18, TypeScript y shadcn/ui en un solo archivo binario nativo. Para interactuar con Kafka se utiliza la biblioteca franz-go, implementada en Go puro sin dependencia de librdkafka y CGO.
Principales características:
- Sistema de perfiles para gestionar múltiples entornos (producción, staging, desarrollo). Cada broker en el perfil puede tener varias cuentas de usuario nombradas con capacidad de cambio rápido. Las contraseñas y tokens se almacenan exclusivamente en el almacén de secretos del sistema operativo (macOS Keychain, Windows Credential Manager, libsecret en Linux) y no se escriben en archivos de configuración.
- Modo Observer: lectura de mensajes de un tema sin conexión a un grupo de consumidores, sin confirmar desplazamientos y sin efectos secundarios en el clúster. Un modo Consumer separado permite conectarse al grupo y confirmar desplazamientos manualmente.
- Navegación temporal (buscar por marca de tiempo): acceso a mensajes por una fecha y hora especificadas sin necesidad de calcular desplazamientos manualmente. Soporte para métodos de autenticación: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (token estático y flujo de credenciales de cliente), TLS con verificación de certificado servidores, mTLS (autenticación mutua por certificado).
- Visualización en tiempo real de mensajes con filtrado por regex basado en claves y valores. Soporta la monitoreo simultáneo de múltiples temas en pestañas separadas. La virtualización de la lista permite mostrar más de 50,000 mensajes sin reducir el rendimiento.
- Gestión de tópicos: creación, eliminación, modificación de parámetros de configuración, visualización de secciones, líderes y conjunto de réplicas sincronizadas (ISR).
- Gestión de grupos de consumidores: visualización del retraso (lag) por secciones, restablecimiento de desplazamientos a earliest, latest o a una marca de tiempo específica, visualización de los miembros del grupo (ID de cliente, host, tópicos asignados), eliminación de grupos.
- Envío de mensajes especificando clave, valor, encabezados y sección de destino.
- Organización de tópicos: fijación de tópicos utilizados frecuentemente, agrupación en carpetas nombradas, búsqueda con soporte para expresiones regulares y filtrado por el número mínimo de secciones.
- Exportación del búfer de mensajes en formato JSON o CSV.
- Integración con Confluent Schema Registry para la decodificación automática de mensajes en formato Avro.
- Sistema de complementos de JavaScript para la decodificación personalizada de mensajes (Protobuf, MessagePack y otros formatos).
- Importación y exportación de configuraciones en formato JSON, incluyendo perfiles, grupos de tópicos y tópicos fijados.
Fuente: opennet.ru
