Releases: edenhill/kcat
Releases · edenhill/kcat
kcat 1.7.0
kafkacat has been renamed to kcat to adhere to the Apache Software Foundation's (ASF) trademark policies.
kafkacat
is now calledkcat
.- 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
andvalue_schema_id
.
Upgrade considerations
- Please rename any
kafkacat.conf
config files tokcat.conf
.
The old path will continue to work for some time but a warning will be
printed. - Please rename any
KAFKACAT_CONF
environment variables toKCAT_CONF
.
The old environment variable will continue to work for some time but a
warning will be printed.
1.6.0
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
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
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
1.3.1
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
1.2.0
Enhancements:
- Added
-j
: JSON output and input (optional, requires libyajl) - Added
-f ..fmt..
: Configurable output formatting - Added
-T
option to mimictee
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
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)