Skip to content
Italiano

Comparison

Seven clients for Apache Kafka, stopwatch in hand.

The same networked cluster, the same data, the same Windows machine. Here are the results, how we got them, and the raw data to redo the maths.

  • 21-22 October 2026
  • SASL_SSL and SCRAM
  • Median of 3 runs
  • Alternating runs

The tests

12 s against 52 s for the runner-up and about 4-5 minutes for the others

A typical session

Open the program, see the 10,003 topics, search for a value across 2 million messages.

Sum of the median startup, topic list and search. Kafbat UI did not finish the search.

4× faster than the runner-up, 20× or more than the others

Search across 2 million messages

A tax code across 2 million JSON messages, 972 MB: 200 expected matches.

Kafbat UI stopped after 5 minutes with 160,200 messages read. AKHQ and Redpanda Console: one run; AKHQ with a server setting changed to reach the end.

0.88 s to see all 10,003 topics

Connect and list the topics

From the click to the list on screen.

Offset Explorer from the command line. AKHQ shows the first page. Kafbat UI is not charted: between 3 and 58 s, highly variable. KafkIO also counts the messages of every topic.

1.5 s from double click to a ready window

Startup

For web tools, the server startup counts.

AKHQ, Kafbat UI and Redpanda Console: server startup, one run.

1.5 s to read and show 10,000 messages

Reading 10,000 messages

The last 10,000 of a 2-million-message topic.

Offset Explorer from the command line. Redpanda Console reads the first 10,000. AKHQ and Kafbat UI read in pages of 50 and 100.

469 MB at the search peak, window included

Memory during the search

Here the one using less wins: Topicup is third.

Working set of all processes. AKHQ: server only, without the browser. Redpanda Console: browser included. Kafbat UI not measured. Topicup: the Rust engine uses 25-130 MB, the rest is WebView2.

Correctness

33 questions with the expected result known in advance: compression codecs, Unicode, a 1 MB message, regex, key, headers, transactions, compaction, JsonPath.

The 4 differences

  • Messages of an aborted transaction

    Topicup0Offset Explorer20

    Topicup is right

    An aborted transaction never happened.

  • Topic with transactions, 40 committed

    Topicup40Offset Explorer60

    Topicup is right

    Same reason: the 20 aborted ones do not count.

  • Regex with .* on a 1 MB message

    Topicup3, at onceOffset Explorerstopped after 28 min

    Topicup is right

    Rust's regex engine runs in linear time.

  • Search by key, hand-assigned partitions

    Topicup0Offset Explorer2,000

    Offset Explorer is right

    Topicup reads only the computed partition. To be improved.

The bench

The programs

  • Topicup 0.1.0

    Licence used
    ours
    How
    app driven by Playwright; bundled command line
  • Offset Explorer 4.0.5

    Licence used
    user interface under the free personal licence; command line within the 30-day trial
    How
    user interface with automated clicks; search with commandline.exe -findMessages, the same engine as Find Messages
  • KafkIO 2.1.17

    Licence used
    free, including for commercial use
    How
    user interface driven by UI Automation
  • Kafka Magic 4.0.1 Community

    Licence used
    Community, free
    How
    web page driven by Playwright on Edge
  • AKHQ 0.28.0

    Licence used
    Apache 2.0
    How
    the server's REST API, the same its page uses
  • Redpanda Console 3.13.0

    Licence used
    free part
    How
    web page driven by Playwright on Edge
  • Kafbat UI 1.5.0, formerly Provectus Kafka UI

    Licence used
    Apache 2.0
    How
    the server's REST API

Not measured: Kadeck, which requires registration, and products whose licence does not allow publishing comparisons.

How we measure

  1. Alternating runs

    Topicup and the other program one after the other, in the same time window, so a slow moment on the network weighs on both.

  2. One at a time

    Only one program at a time on the client. Web servers run on the same machine and read the cluster over the network.

  3. Visible end

    From the command or click to what the program shows or reports.

  4. Median

    Of 3 runs; where there is only one run we say so next to the number.

Where the lead narrows

  • Very long reads

    Across 12 million messages, 5.8 GB, the broker's disk becomes the limit: Topicup 1 min 39 s, Offset Explorer 1 min 50 s. About 10%.

  • Memory

    Offset Explorer uses less memory: 145 MB at rest and 372 MB during the search, against 293 and 469 MB for Topicup, mostly the window (WebView2).

All the numbers

Show the full tables
Offset Explorer: search
Offset Explorer: searchTopicup (command line)Offset Explorer (-findMessages)
Total time, from launch to exit9.6 s (9.3-18.3)40.2 s (39.8-41.4)
Search only, as the program reports it8.8-9.1 s (16.4 in the slow run)32.6-34.2 s
Messages searched and found2,000,000, 2002,000,000, 200

Topicup's slow run, 18.3 s, had the network at 22.6 ms instead of 11, with the broker still busy writing other data.

KafkIO: user interfaces
KafkIO: user interfacesTopicup (app)KafkIO
Startup, up to the connection list1.53 s (1.38-1.53)11.5 s (11.1-11.7)
Connect and list the 10,003 topics0.88 s (0.88-0.89)51.3 s (51.2-53.0)
10,000 messages read and shown1.50 s (0.94-1.52)6.3 s (6.2-6.3)
Search across 2 million messages9.9 s (9.7-10.2), 200 of 200201 s (193-201), 200 of 200
RAM at rest293 MB275 MB
RAM after the topic list351 MB1,049 MB
Peak RAM during the search469 MB1,898 MB (up to 2,023)

KafkIO fetches the topics with the message count of each (27,026 partitions); Topicup shows the names with one request and loads counts when you open a topic.

Raw data

One JSON line per measurement, as the script wrote it. Only the test PC's paths were removed.

Offset Explorer, Kafka Tool, KafkIO, Kafka Magic, AKHQ, Redpanda Console and Kafbat UI are trademarks of their respective owners. The names are used only to say what we measured: Topicup is not affiliated with or endorsed by their makers.

← Back to the home page