Kafkalet 0.1, un client graphique de bureau pour Apache Kafka, est disponible. L'application est fournie sous forme de fichier binaire autonome d'environ 15 Mo et ne nécessite aucune installation de JVM, de Docker ou de composants serveur. Le code du projet est écrit en Go et TypeScript et distribué sous licence MIT. Des versions sont disponibles pour macOS (Intel et Apple Silicon), Windows et Linux.
Contrairement aux outils web existants comme Kafka UI et AKHQ, qui nécessitent le déploiement d'un serveur Docker, kafkalet fonctionne comme une application de bureau classique, à l'instar de DBeaver ou DataGrip pour les bases de données. Jusqu'à présent, le seul client Kafka de bureau était Offset Explorer (anciennement Kafka Tool), écrit en Java et non mis à jour depuis longtemps. kafkalet est basé sur le framework Wails v2, qui combine un backend Go avec une interface web développée en React 18, TypeScript et shadcn/ui, le tout dans un seul binaire natif. Pour l'interaction avec Kafka, la bibliothèque franz-go est utilisée ; elle est implémentée en Go pur, sans dépendance à librdkafka ni CGO.
Principales caractéristiques:
- Un système de profils pour la gestion de plusieurs environnements (production, préproduction et développement). Chaque broker d'un profil peut avoir plusieurs comptes nommés, avec la possibilité de basculer rapidement entre eux. Les mots de passe et les jetons sont stockés exclusivement dans le gestionnaire de secrets du système d'exploitation (Trousseau d'accès macOS, Gestionnaire d'informations d'identification Windows ou libsecret sous Linux) et ne sont pas enregistrés dans les fichiers de configuration.
- Le mode Observateur lit les messages d'un sujet sans se connecter à un groupe de consommateurs, sans valider les décalages et sans impact sur le cluster. Un mode Consommateur distinct permet de se connecter au groupe et de valider manuellement les décalages.
- Navigation par horodatage : accédez aux messages en fonction d’une date et d’une heure précises sans calculer manuellement les décalages. Méthodes d’authentification prises en charge : SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (flux de jeton statique et d’informations d’identification du client), TLS avec vérification de certificat. serveur, mTLS (authentification par certificat mutuel).
- Visualisation en continu des messages avec filtrage en temps réel par expressions régulières des clés et des valeurs. La surveillance simultanée de plusieurs sujets dans des onglets distincts est prise en charge. La virtualisation des listes permet d'afficher plus de 50 000 messages sans impact sur les performances.
- Gestion des sujets : création, suppression, modification des paramètres de configuration, visualisation des partitions, des leaders et de l’ensemble des répliques synchronisées (ISR).
- Gestion des groupes de consommateurs : affichage du décalage par partition, réinitialisation des décalages à la date la plus ancienne, la plus récente ou à un horodatage spécifique, affichage des membres du groupe (ID client, hôte, sujets attribués), suppression des groupes.
- Envoi de messages avec clé, valeur, en-têtes et section cible spécifiés.
- Organisation des sujets : épinglez les sujets fréquemment utilisés, regroupez-les dans des dossiers nommés, effectuez des recherches avec prise en charge des expressions régulières et filtrez par un nombre minimum de sections.
- Exporter le tampon de messages au format JSON ou CSV.
- Intégration avec Confluent Schema Registry pour le décodage automatique des messages Avro.
- Un système de plugins JavaScript pour le décodage personnalisé des messages (Protobuf, MessagePack et autres formats).
- Importez et exportez les paramètres au format JSON, y compris les profils, les groupes de sujets et les sujets épinglés.
Source: opennet.ru
