De uitgave van kafkalet 0.1, een desktop grafische client voor het werken met Apache Kafka, is gepubliceerd. De applicatie wordt geleverd als een zelfstandige binaire bestand van ongeveer 15 MB, vereist geen installatie van JVM, Docker of het draaien van servercomponenten. De code van het project is geschreven in Go en TypeScript en wordt verspreid onder de MIT-licentie. Builds zijn voorbereid voor macOS (Intel en Apple Silicon), Windows en Linux.
In tegenstelling tot bestaande webgebaseerde tools zoals Kafka UI en AKHQ, die het draaien van een serverproces in Docker vereisen, functioneert kafkalet als een gewone desktopapplicatie ā vergelijkbaar met DBeaver of DataGrip voor databases. De enige desktop Kafka-client tot nu toe was Offset Explorer (voorheen Kafka Tool), geschreven in Java en al lange tijd niet bijgewerkt. De applicatie kafkalet is gebouwd op het Wails v2-framework, dat een Go-backend combineert met een webinterface in React 18, TypeScript en shadcn/ui in ƩƩn enkele native binaire bestand. Voor interactie met Kafka wordt de library franz-go gebruikt, die volledig in Go is geĆÆmplementeerd zonder afhankelijkheid van librdkafka en CGO.
Belangrijkste mogelijkheden:
- Een profielsysteem voor het beheren van meerdere omgevingen (productie, staging, dev). Elke broker in het profiel kan meerdere benoembare accountgegevens bevatten met de mogelijkheid om snel te schakelen. Wachtwoorden en tokens worden uitsluitend opgeslagen in de geheime opslag van het besturingssysteem (macOS Keychain, Windows Credential Manager, libsecret op Linux) en worden niet in configuratiebestanden geschreven.
- Observer-modus ā berichten lezen uit een topic zonder verbinding met de consumer group, zonder commits van offset en zonder bijeffecten op het cluster. Een aparte consumer-modus maakt verbinding met de groep en stelt gebruikers in staat om offsets handmatig vast te leggen.
- Tijdnavigatie (zoek op tijdstempel) ā gaan naar berichten op de opgegeven datum en tijd zonder handmatig offsets te hoeven berekenen. Ondersteuning voor authenticatiemethoden: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (statische token en client credentials flow), TLS met certificaatvalidatie. de server, mTLS (wederzijdse authenticatie via certificaten).
- Streamingweergave van berichten met regex-filtering op sleutels en waarden in realtime. Ondersteuning voor gelijktijdige monitoring van meerdere topics in aparte tabbladen. Virtualisatie van de lijst maakt het mogelijk om meer dan 50.000 berichten weer te geven zonder prestatieverlies.
- Beheer van topics: creƫren, verwijderen, configuratieparameters wijzigen, secties, leiders en de set van gesynchroniseerde replicaties (ISR) bekijken.
- Beheer van consumer groepen: het bijhouden van vertraging (lag) per sectie, het resetten van offsets naar earliest, latest of een specifieke tijdstempel, bekijken van groepsleden (client ID, host, toegewezen topics), groepen verwijderen.
- Berichten verzenden met een sleutel, waarde, headers en de doelsectie.
- Organisatie van topics: vastzetten van veelgebruikte topics, groeperen in benoemde mappen, zoeken met ondersteuning voor reguliere expressies en filtering op een minimaal aantal secties.
- Exporteren van de message buffer in JSON- of CSV-formaat.
- Integratie met Confluent Schema Registry voor automatische decode van berichten in Avro-formaat.
- JavaScript-plugin systeem voor aangepaste decode van berichten (Protobuf, MessagePack en andere indelingen).
- Importeren en exporteren van instellingen in JSON-formaat, inclusief profielen, topic groepen en vastgezette topics.
Bron: opennet.ru
