Pubblicato il rilascio di kafkalet 0.1, un client desktop grafico per lavorare con Apache Kafka. L'applicazione è fornita come un file binario autonomo di circa 15 MB, non richiede l'installazione di JVM, Docker o l'esecuzione di componenti server. Il codice del progetto è scritto in Go e TypeScript e distribuito con licenza MIT. Le build sono pronte per macOS (Intel e Apple Silicon), Windows e Linux.
A differenza degli strumenti orientati al web esistenti, come Kafka UI e AKHQ, che richiedono il dispiegamento di un processo server in Docker, kafkalet funziona come un'applicazione desktop tradizionale — simile a DBeaver o DataGrip per database. L'unico client Kafka desktop esistente fino ad ora è stato Offset Explorer (ex Kafka Tool), scritto in Java e non aggiornato da tempo. L'applicazione kafkalet è costruita sul framework Wails v2, che unisce un backend in Go con un'interfaccia web in React 18, TypeScript e shadcn/ui in un unico file binario nativo. Per interagire con Kafka viene utilizzata la libreria franz-go, implementata in puro Go senza dipendenze da librdkafka e CGO.
Funzionalità principali:
- Sistema di profili per gestire più ambienti (produzione, staging, dev). Ogni broker nel profilo può avere più account con nome, con la possibilità di uno switch rapido. Le password e i token sono memorizzati esclusivamente nel sistema di archiviazione dei segreti del sistema operativo (macOS Keychain, Windows Credential Manager, libsecret su Linux) e non vengono scritti nei file di configurazione.
- Modalità Observer — lettura dei messaggi dal topic senza connessione al gruppo consumer, senza commit degli offset e senza effetti collaterali sul cluster. Una modalità Consumer separata consente di collegarsi a un gruppo e di confermare gli offset manualmente.
- Navigazione temporale (seek to timestamp) — accesso ai messaggi a una data e ora specificate senza dover calcolare manualmente gli offset. Supporto per metodi di autenticazione: SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER (token statico e client credentials flow), TLS con verifica del certificato server, mTLS (autenticazione reciproca tramite certificati).
- Streaming delle messaggi con filtro regex per chiavi e valori in tempo reale. Supporto per la visualizzazione simultanea di più argomenti in schede separate. La virtualizzazione dell'elenco consente di visualizzare oltre 50.000 messaggi senza compromettere le prestazioni.
- Gestione degli argomenti: creazione, eliminazione, modifica dei parametri di configurazione, visualizzazione delle partizioni, dei leader e del set di repliche sincronizzate (ISR).
- Gestione dei gruppi di consumatori: visualizzazione del lag per partizioni, ripristino degli offset a earliest, latest o a un timestamp specifico, visualizzazione dei membri del gruppo (client ID, host, argomenti assegnati), eliminazione dei gruppi.
- Invio di messaggi specificando chiave, valore, intestazioni e partizione di destinazione.
- Organizzazione degli argomenti: fissaggio degli argomenti frequentemente utilizzati, raggruppamento in cartelle nominate, ricerca con supporto per le espressioni regolari e filtraggio per numero minimo di partizioni.
- Esportazione del buffer dei messaggi in formato JSON o CSV.
- Integrazione con Confluent Schema Registry per la decodifica automatica dei messaggi in formato Avro.
- Sistema di plugin JavaScript per la decodifica personalizzata dei messaggi (Protobuf, MessagePack e altri formati).
- Importa ed esporta impostazioni in formato JSON, inclusi profili, gruppi di argomenti e argomenti bloccati.
Fonte: opennet.ru
