Kafka Rust Client Changelog

To get the latest product updates delivered to you in an RSS feed, add the URL of this page to your feed reader or add the feed's URL directly
https://docs.confluent.io/kafka-clients/rust/1.0/changelog.xml

1.0.0

The Rust client is generally available.

Upgrading from 0.1.0

Version 1.0.0 makes breaking changes to the 0.1.0 API. The changes that most applications need are:

  • KafkaProducer::new and KafkaConsumer::new take their serializers and deserializers by value. Pass StringSerializer::new() instead of Box::new(StringSerializer).

  • KafkaConsumer::new returns a KafkaConsumer instead of a Box<dyn Consumer>.

  • metrics() on the producer and the consumer returns a MetricsView, a live read-only view of the metrics. Call snapshot() to read them.

  • committed and offsets_for_times on the consumer return a map with an entry for every partition requested, whose value is None when there is no offset.

  • Admin::delete_topics is renamed delete_topics_with_topic_collection. To delete topics by name, call delete_topics_with_string_slice.

  • The compression codecs, TLS, and Mozilla’s root certificates are default Cargo features. A build that sets default-features = false must enable the ones it needs. See Installation.

For the full list of changes, see the changelog of the crate.

Known limitations

  • The consumer doesn’t support the classic consumer group protocol. You must set group.protocol to consumer.

  • The client doesn’t include the share consumer (KIP-932).

  • The client supports only SASL/PLAIN authentication. It doesn’t support SASL/SCRAM, OAuth, or AWS IAM.

  • TLS keys and certificates must be in PEM format. The client doesn’t support JKS or PKCS12 stores or encrypted private keys.

  • The client supports only Linux amd64 and macOS arm64. It doesn’t support Windows.

0.1.0 Preview

The Rust client is a Preview release.

A Preview feature is a Rust client component that is being introduced to gain early feedback from developers. Preview features can be used for evaluation and non-production testing purposes or to provide feedback to Confluent. The warranty, SLA, and Support Services provisions of your agreement with Confluent do not apply to Preview features. Confluent may discontinue providing preview releases of the Preview features at any time in Confluent’s’ sole discretion.

Enhancements

  • Native Rust implementation of the Kafka protocol.

  • Producer, consumer, and admin clients with an async API that runs on the Tokio runtime.

  • Configuration using Kafka Java Client property names.

  • Consumer support for only the consumer group protocol (KIP-848). Requires Kafka 4.0 or later, Confluent Platform 8.0 or later, or Confluent Cloud.

  • Transactional producer support.

  • TLS support using rustls, and SASL/PLAIN authentication.

  • Compression with gzip, Snappy, LZ4, and Zstandard.

  • Platform support for Linux amd64 and macOS arm64.

Known limitations

  • The API is in continuous development and might change in later releases.

  • The consumer doesn’t support the classic consumer group protocol. You must set group.protocol to consumer.

  • The consumer hangs without a clear error when connected to a broker that doesn’t support the consumer group protocol. Use Kafka 4.0 or later, Confluent Platform 8.0 or later, or Confluent Cloud.

  • The client supports only SASL/PLAIN authentication. It doesn’t support SASL/SCRAM, OAuth, or AWS IAM.

  • The client supports only Linux amd64 and macOS arm64. It doesn’t support Windows.