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).
- 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.
- 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
