Foi lançado o kafkalet 0.1, um cliente gráfico desktop para trabalhar com o Apache Kafka. O aplicativo é fornecido como um arquivo binário autossuficiente de aproximadamente 15 MB, não requerendo a instalação de JVM, Docker ou a execução de componentes de servidor. O código do projeto é escrito em Go e TypeScript e é distribuído sob a licença MIT. As compilações estão preparadas para macOS (Intel e Apple Silicon), Windows e Linux.
Diferente das ferramentas web existentes, como Kafka UI e AKHQ, que necessitam da implantação de processos de servidor em Docker, o kafkalet funciona como um aplicativo desktop comum — semelhante ao DBeaver ou DataGrip para bancos de dados. O único cliente Kafka desktop até agora foi o Offset Explorer (anteriormente conhecido como Kafka Tool), escrito em Java e que não recebe atualizações há muito tempo. O aplicativo kafkalet é construído sobre o framework Wails v2, que combina o backend em Go com a interface web em React 18, TypeScript e shadcn/ui em um único arquivo binário nativo. Para interagir com o Kafka, utiliza-se a biblioteca franz-go, que é implementada em Go puro, sem dependências do librdkafka e CGO.
Principais funcionalidades:
- Um sistema de perfis para gerenciar múltiplos ambientes (produção, staging, dev). Cada broker no perfil pode ter várias contas nomeadas com a capacidade de alternar rapidamente entre elas. As senhas e tokens são armazenados exclusivamente no cofre de segredos do sistema operacional (macOS Keychain, Windows Credential Manager, libsecret no Linux) e não são gravados em arquivos de configuração.
- O modo Observer — leitura de mensagens do tópico sem conexão com o grupo de consumidores, sem confirmação de offsets e sem efeitos colaterais no cluster. Um modo separado de Consumer permite conectar-se ao grupo e confirmar os offsets manualmente.
- Navegação por tempo (seeking to timestamp) — transição para mensagens em uma data e hora especificadas, sem a necessidade de calcular offsets manualmente. Suporte aos métodos de autenticação: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (token estático e fluxo de credenciais do cliente), TLS com verificação de certificado. servidor, mTLS (autenticação mútua via certificados).
- Visualização em tempo real de mensagens com filtragem regex por chaves e valores. Suporte para observar vários tópicos simultaneamente em abas separadas. A virtualização da lista permite exibir mais de 50.000 mensagens sem degradação de desempenho.
- Gerenciamento de tópicos: criação, exclusão, alteração de parâmetros de configuração, visualização de seções, líderes e conjunto de réplicas sincronizadas (ISR).
- Gerenciamento de grupos de consumidores: visualização de atraso (lag) por seções, redefinição de deslocamentos para o earliest, latest ou um timestamp específico, visualização de membros do grupo (ID do cliente, host, tópicos designados), exclusão de grupos.
- Envio de mensagens com especificação de chave, valor, cabeçalhos e seção de destino.
- Organização de tópicos: fixação de tópicos frequentemente utilizados, agrupamento em pastas nomeadas, pesquisa com suporte a expressões regulares e filtragem por número mínimo de seções.
- Exportação de buffer de mensagens nos formatos JSON ou CSV.
- Integração com Confluent Schema Registry para decodificação automática de mensagens no formato Avro.
- Sistema de plugins JavaScript para decodificação personalizada de mensagens (Protobuf, MessagePack e outros formatos).
- Importação e exportação de configurações no formato JSON, incluindo perfis, grupos de tópicos e tópicos fixados.
Fonte: opennet.ru
