Skip to content

Releases: edenhill/kcat

kcat 1.7.0

23 Aug 13:46
Compare
Choose a tag to compare

kafkacat has been renamed to kcat to adhere to the Apache Software Foundation's (ASF) trademark policies.

  • kafkacat is now called kcat.
  • Add support for multibyte delimiters to -D and -K (#140, #280)
  • Add support for -X partition.assignment.strategy=cooperative-sticky incremental rebalancing.
  • High-level consumer -G now supports exit-on-eof -e option (#86)
  • Avro consumer with -J will now emit key_schema_id and value_schema_id.

Upgrade considerations

  • Please rename any kafkacat.conf config files to kcat.conf.
    The old path will continue to work for some time but a warning will be
    printed.
  • Please rename any KAFKACAT_CONF environment variables to KCAT_CONF.
    The old environment variable will continue to work for some time but a
    warning will be printed.

1.6.0

21 Jul 08:56
Compare
Choose a tag to compare

kafkacat v1.6.0

  • Transactional Producer support (see below).
  • Honour -k <key> when producing files (#197).
  • Honour -o <offset> in -G high-level consumer mode (#231).
  • Added -m <seconds> argument to set metadata/query/transaction timeouts.
  • Allow schema.registry.url to be configured in config file and
    not only by -r (#220).
  • Print broker-id message was produced to (if -v),
    or was consumed from (if -J).

Docker image

docker run -it edenhill/kafkacat:1.6.0 ...

Apache Kafka EOS / Transactional Producer support

Messages can now be produced in a single transaction if -X transactional.id=..
is passed to the producer in -P mode.

If kafkacat is terminated through Ctrl-C (or other signal) the transaction
will be aborted, while normal termination (due to stdin closing or after reading
all supplied files) will commit the transaction.

$ kafkacat -b $BROKERS -P -t mytopic -X transactional.id=myproducerapp
% Using transactional producer
This is a transactional message
And so is this
:)
[Press Ctrl-D]
% Committing transaction
% Transaction successfully committed

1.5.0

12 Sep 08:35
Compare
Choose a tag to compare

kafkacat logo

What's new in 1.5.0

  • Confluent Schema-Registry and Apache Avro support: consumer can now deserialize Avro messages (-s avro). Feature contributed by @llofberg
  • Added generic primitive deserialization using pack-str format (e.g., -s 'key=i h$')
  • kafkacat now has a logo ⬆️, by @dtrapezoid
  • Start and/or stop consuming based on timestamp (-o s@1568276617000 -o e@1568276622000), by @champtar
  • New Dockerfile based on Alpine (edenhill/kafkacat:1.5.0)
  • kafkacat is now compatible with old docker images by removing an initial kafkacat argument if it is present.
  • Dont overwrite producev() error code (#175)

1.4.0

08 Apr 09:45
Compare
Choose a tag to compare

Enhancements

  • Consumer: Add support for printing message headers (-f ".. %h.. \n")
  • Producer: Add support for specifying message headers (-H name=value)
  • Emit current controllerId in metadata output, if supported
  • Add -F <file> to read config from file. Defaults to $KAFKACAT_CONFIG or ~/.config/kafkacat.conf (#130). With some support for translating Java config properties to librdkafka counterparts.
  • Support Fixed key (-k ..) (#123, @solsson)

Fixes

  • Make sure topic configuration is applied first (#149)
  • JSON: emit NULL keys and values as null rather than empty string
  • Fix tstype json output (@hustclf, #166)
  • Honour -c count in consumer mode by yielding

1.3.1

20 Apr 12:05
Compare
Choose a tag to compare

Enhancements

  • Added support for formatter %T - message timestamp
  • Introduce -E argument (don't exit on error) (by @champtar)
  • Added offsets_for_times() support (KIP-79): query offset by timestamp with -Q -t ..
  • Now builds on win32 (VS)

Fixes

  • Use default fallback version if built outside of git repo (#92)
  • Fix -X dump
  • Allow brokers to be specified through -X .. (#85)
  • Ensure metadata is destroyed in consumer_run (@chrisvroberts)
  • Temporary QUEUE_FULL should not be consider permanent errors (issue #75)
  • Readme Change regarding -X parameter ( @anshulpatel25 )

1.3.0

27 May 12:30
Compare
Choose a tag to compare
Seed rng for proper random partitioning, jitters, etc.

1.2.0

03 Jun 21:45
Compare
Choose a tag to compare

Enhancements:

  • Added -j: JSON output and input (optional, requires libyajl)
  • Added -f ..fmt..: Configurable output formatting
  • Added -T option to mimic tee behaviour (@fsaintjacques)
  • Added -Z: NULL message and key support (for log compaction)
  • Added RPM spec file (@fsaintjacques)
  • Added man page kafkacat(1)
  • Offsets are now stored immediately on printed message

Fixes:

  • Fixed partial output writes (@fsaintjacques)
  • Consuming empty messages caused fatal error (issue #29)
  • Exit with 1 if any messages fails delivery (issue #36)
  • With -e: Stop consuming partition when EOF is reached (issue #33)

Thanks to @fsaintjacques, @redmar, @Whissi, @vincentbernat

1.1.0

04 Dec 12:23
Compare
Choose a tag to compare

Enhancements:

  • Can now produce directly from files (one file is one message)
  • Consumes from all partitions if no -p PARTITION is given
  • Much quicker process exits (issue #12)
  • Added tail offset support -o -N: starts consuming from the Nth message from current partition tail.
  • Added -c CNT option to limit number of messages consumed
  • Added -u option to turn on unbuffered I/O (issue #3)
  • Added -K DELIM to print message key
  • Added -O option to print message offset

Fixes:

  • Compilation fixes on various platforms
  • Topic errors were not properly printed (issue #10)

1.0.0

07 Apr 15:13
Compare
Choose a tag to compare

Initial kafkacat release