Skip to content

0.19.0

Choose a tag to compare

@twmb twmb released this 21 Aug 08:21
632a6bf

One minor breaking change, caught while auditing the command surface: kcl consume now reads uncommitted records by default, matching the Java client, librdkafka, rpk, and kcat. Use --read-committed for the old behavior.

Read the CHANGELOG if you script against kcl.

Highlights

  • Schema Registry support. A new kcl registry command space — subjects, schemas, references, compatibility, mode, contexts — plus schema-aware produce and consume: --schema / --key-schema encode JSON into the registry wire format against an existing schema, and --decode reads it back. Avro, JSON Schema, and Protobuf, including schemas that reference others.
  • kcl consume -f json. One JSON object per record. Non-UTF-8 keys and values print as base64 rather than being corrupted, a nil component stays distinct from an empty one, and with --decode a component that decoded to JSON is embedded as a JSON value, so jq .value.count works.
  • kcl fake also serves a registry, and --seed-demo seeds Avro, Protobuf, JSON, and plain topics — a Docker-free playground for the whole flow.
  • kcl reassign cancel cancels in-progress partition reassignments.
  • Shell completion now completes kcl acl's filter values.
  • Three kcl consume stop conditions that never worked. -o N:M, -o :end, and --timeout all ran forever; -o N:M had no termination path at all.
  • kcl acl rejects an unrecognized filter by name instead of sending it as an UNKNOWN element that brokers reject while parsing the request (#56).