Veröffentlichung von kafkalet 0.1, einem Desktop-Client für Apache Kafka

Die Veröffentlichung von kafkalet 0.1, einem Desktop-Grafik-Client für die Arbeit mit Apache Kafka, ist erfolgt. Die Anwendung wird als eigenständige Binärdatei mit einer Größe von etwa 15 MB geliefert, benötigt keine JVM, Docker oder das Starten von Serverkomponenten. Der Code des Projekts ist in Go und TypeScript geschrieben und wird unter der MIT-Lizenz vertrieben. Die Builds sind für macOS (Intel und Apple Silicon), Windows und Linux vorbereitet.

Im Gegensatz zu bestehenden weborientierten Tools wie Kafka UI und AKHQ, die das Deployment eines Serverprozesses in Docker erfordern, funktioniert kafkalet wie eine gewöhnliche Desktop-Anwendung – ähnlich wie DBeaver oder DataGrip für Datenbanken. Der einzige Desktop-Kafka-Client bisher war Offset Explorer (früher Kafka Tool), der in Java geschrieben ist und lange nicht aktualisiert wurde. Die Anwendung kafkalet basiert auf dem Wails v2 Framework, das das Go-Backend mit einer Weboberfläche in React 18, TypeScript und shadcn/ui zu einer einzigen nativen Binärdatei kombiniert. Zur Interaktion mit Kafka wird die Bibliothek franz-go verwendet, die in reinem Go ohne Abhängigkeit von librdkafka und CGO implementiert ist.

Hauptfunktionen:

  • Ein Profilverwaltungssystem zur Verwaltung mehrerer Umgebungen (Produktion, Staging, Entwicklung). Jeder Broker im Profil kann mehrere benannte Konten mit der Möglichkeit des schnellen Wechsels haben. Passwörter und Token werden ausschließlich im systemeigenen Geheimnisspeicher des Betriebssystems gespeichert (macOS Keychain, Windows Credential Manager, libsecret auf Linux) und nicht in Konfigurationsdateien geschrieben.
  • Der Observer-Modus – Lesen von Nachrichten aus einem Thema ohne Verbindung zu einer Consumer-Gruppe, ohne Offset-Commits und ohne Nebeneffekte auf den Cluster. Ein separater Consumer-Modus ermöglicht das Verbinden mit einer Gruppe und das manuelle Festhalten von Offsets.
  • Zeitnavigation (suchen nach Zeitstempel) – wechseln zu Nachrichten an einem angegebenen Datum und Uhrzeit, ohne die Offsets manuell berechnen zu müssen. Unterstützung für Authentifizierungsmethoden: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (statisches Token und Client-Credentials-Flow), TLS mit Zertifikatsprüfung Server, mTLS (gegenseitige Authentifizierung mittels Zertifikaten).
  • Echtzeit-Streaming von Nachrichten mit Regex-Filterung nach Schlüsseln und Werten. Gleichzeitige Überwachung mehrerer Themen in separaten Reitern wird unterstützt. Die Virtualisierung der Liste ermöglicht die Anzeige von mehr als 50.000 Nachrichten, ohne die Leistung zu beeinträchtigen.
  • Themenverwaltung: Erstellen, Löschen, Ändern von Konfigurationsparametern, Anzeigen von Partitionen, Leadern und dem Set von synchronisierten Replikaten (ISR). Veröffentlichung von kafkalet 0.1, einem Desktop-Client für Apache Kafka
  • Verwaltung von Consumer-Gruppen: Überwachung von Lag in Bezug auf Partitionen, Zurücksetzen von Offsets auf früheste, neueste oder einen bestimmten Zeitstempel, Anzeigen der Gruppenmitglieder (Client-ID, Host, zugewiesene Themen), Löschen von Gruppen.
  • Nachrichtensendung unter Angabe von Schlüssel, Wert, Headern und der Zielpartition. Veröffentlichung von kafkalet 0.1, einem Desktop-Client für Apache Kafka
  • Themenorganisation: Anheften häufiger Themen, Gruppierung in benannten Ordnern, Suche mit Unterstützung für reguläre Ausdrücke und Filterung nach der minimalen Anzahl an Partitionen.
  • Exportieren des Nachrichtenpuffers im JSON- oder CSV-Format.
  • Integration mit dem Confluent Schema Registry zum automatischen Dekodieren von Nachrichten im Avro-Format.
  • JavaScript-Plugin-System für benutzerdefiniertes Dekodieren von Nachrichten (Protobuf, MessagePack und andere Formate).
  • Import und Export von Einstellungen im JSON-Format, einschließlich Profile, Themen-Gruppen und angeheftete Themen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4