Glafira para Apache Kafka: cliente desktop abierto en Rust que permite a los LLM leer el clúster sin tocarlo
27 de octubre de 2026 · 3 min de lectura
Glafira para Apache Kafka es un cliente desktop gratuito desarrollado en Rust que funciona en macOS, Windows y Linux. El código está licenciado bajo Apache 2.0 y ofrece todas sus funciones sin necesidad de claves ni tarifas. El proyecto incluye un gateway MCP integrado que permite a Claude, GigaCode, Cursor o cualquier cliente compatible con MCP diagnosticar el clúster, dejar observaciones y proponer cambios, pero impide realizar modificaciones en el clúster.
El cliente se diseñó para desarrolladores y testers que normalmente utilizan herramientas de línea de comandos como kafka-console-consumer, kcat o scripts personalizados para buscar mensajes, reiniciar offsets y gestionar configuraciones. Estas prácticas suelen requerir recordar múltiples flags y copiar repetidamente configuraciones SASL, lo que resulta engorroso.
Glafira busca simplificar este flujo ofreciendo una aplicación ligera que se instala en minutos, almacena credenciales en el almacén de secretos del sistema y permite realizar seis operaciones esenciales: conectar al clúster con autenticación, buscar mensajes por contenido en clave, valor o encabezados con filtros de tiempo u offset, enviar mensajes con claves y encabezados, consumir como parte de un grupo y comprometer offsets manualmente, crear o modificar tópicos y particiones, y gestionar grupos de consumidores con sus lag y rebalanceos.
El nombre Glafira proviene de una preferencia personal y se planea ampliar el proyecto con una familia de herramientas, comenzando con Glafira para PostgreSQL, un gestor similar para bases de datos Patroni.
El cliente soporta múltiples mecanismos de conexión, incluyendo PLAINTEXT, SSL, SASL PLAIN y SCRAM-SHA-256/512, mTLS con certificados en PEM, PKCS#12 o JKS, y permite confiar en CAs propias o en certificados del sistema. Las credenciales y claves se guardan en Keychain, Credential Manager o Secret Service, evitando archivos JSON con contraseñas.
La visualización de mensajes permite leer sin unirse a un group.id mediante assign, con opciones de posición inicial como los últimos N mensajes, desde el principio, por offset o por timestamp. Los filtros se aplican en Rust antes de mostrarse en la interfaz, admitiendo substrings, expresiones regulares, JSONPath y búsquedas por tiempo. Un modo live tail muestra un buffer circular con hasta 100 000 mensajes y soporta formatos auto, string, json, hex y base64.
El módulo producer permite especificar clave, valor, encabezados, partición, acks, compresión e idempotencia, además de plantillas con placeholders como {{uuid}}, {{now}} y {{randomInt 1 100}}. La envío por lotes replica la clave, el valor y los encabezados sin modificar el texto mediante plantillas.
Las sesiones de consumidor permiten unirse a grupos con rebalanceo, asignación de particiones y compromiso manual de offsets mediante botones, mientras que el autocommit está desactivado por defecto.
La gestión de tópicos y grupos incluye creación, edición de configuraciones con vista diff, ajuste de particiones, eliminación y visualización de lag por partición. Para grupos, se muestra la composición de miembros, el group.instance.id y la posibilidad de resetear offsets solo cuando el grupo está en estado Empty.
La verificación del clúster incorpora reglas que detectan la ausencia de controlador, particiones sub-replicadas, líderes no sincronizados, auto‑creación de tópicos y discrepancias en configuraciones entre brokers. La rigurosidad de estas comprobaciones varía según el entorno: en producción se exige RF=1, en stage se muestra como advertencia y en desarrollo no se muestra.
Detalles adicionales incluyen una interfaz en 12 idiomas, guía integrada accesible mediante F1, indicaciones de ayuda en cada campo y la posibilidad de desactivar MCP mediante políticas corporativas gestionadas por MDM, GPO o configuraciones de sistema.
El stack técnico combina Tauri 2, Rust (edition 2024), React 19 con TypeScript, TanStack Query, Virtual y Zustand. El cliente de Kafka se basa en rust‑rdkafka sobre una librdkafka estáticamente compilada con OpenSSL y zstd vendored. Actualmente el código Rust supera las 36 000 líneas, incluyendo pruebas, mientras que el frontend contiene alrededor de 10 000 líneas sin pruebas.