Kafka Rust Client Changelog
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::newandKafkaConsumer::newtake their serializers and deserializers by value. PassStringSerializer::new()instead ofBox::new(StringSerializer).KafkaConsumer::newreturns aKafkaConsumerinstead of aBox<dyn Consumer>.metrics()on the producer and the consumer returns aMetricsView, a live read-only view of the metrics. Callsnapshot()to read them.committedandoffsets_for_timeson the consumer return a map with an entry for every partition requested, whose value isNonewhen there is no offset.Admin::delete_topicsis renameddelete_topics_with_topic_collection. To delete topics by name, calldelete_topics_with_string_slice.The compression codecs, TLS, and Mozilla’s root certificates are default Cargo features. A build that sets
default-features = falsemust 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
classicconsumer group protocol. You must setgroup.protocoltoconsumer.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
amd64and macOSarm64. 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
amd64and macOSarm64.
Known limitations
The API is in continuous development and might change in later releases.
The consumer doesn’t support the
classicconsumer group protocol. You must setgroup.protocoltoconsumer.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
amd64and macOSarm64. It doesn’t support Windows.