Repository navigation
Releases: confluentinc/confluent-kafka-dotnet
Release list
v2.16.0
New experimental features
- Serializers and deserializers can now be supplied to a producer, dependent
producer or consumer as a builder, which the client invokes during its own
construction and then owns, disposing it (and any Schema Registry client it
created) when the client itself is disposed. See the AvroGeneric example (#2661) - Schema Registry serde builders are now available for each supported format,
each configurable with a Schema Registry client you own or the
configuration to build one from. See the AvroGeneric,
JsonSerialization and Protobuf examples (#2661) - Producers, consumers and admin clients can now report the id of the Kafka
cluster they're connected to (#2661) - The Kafka cluster id is now propagated to Schema Registry serializers and
deserializers automatically, and resolved lazily on first use, so subject
name strategies based on the cluster no longer need it configured by hand.
See the AvroGenericAssociation example (#2661) - The serializer and deserializer builder APIs (
Set*SerializerBuilderand
Set*DeserializerBuilderon the producer and consumer builders, the Schema
Registry serde builders),IClusterIdAware,ISerdeDisposable,SerdeExtensions
and theClusterIdclient extension are experimental: they are subject to
change or removal in a future release (#2661)
Enhancements
- References librdkafka.redist 2.16.0. Refer to the librdkafka v2.16.0 release notes for more information
- Add support for saving Azure key version with DEK (#2641)
- Pass context when clients make KEK calls to DEK Registry (#2642)
- Add support for inline validation rules (#2651)
- Add Variant, Decimal, and Timestamp CEL functions (#2653)
- Add support for linux-s390x (IBM Z), with CI coverage on s390x (#2646)
- Add support for AliCloud KMS provider with CSFLE/CSPE (#2648)
- Schema Registry examples now use the serde builder API (#2661)
Fixes
- Fix the CSFLE ciphertext version field being written little-endian on big-endian
platforms, which made encrypted fields unreadable across architectures - Fix message
Timestamp.Typebeing read asNotAvailableon big-endian platforms
(e.g. s390x): librdkafka'srd_kafka_timestamp_type_tout-parameter (a 32-bit enum)
was marshalled as a pointer-sizedIntPtr, so the value landed in the high word and
was truncated to0on big-endian
v2.15.1
Enhancements
- References librdkafka.redist 2.15.1. Refer to the librdkafka v2.15.1 release notes for more information.
Fixes
v2.15.0
Upgrade considerations
Ensure you're not calling StoreOffset with an EOF message.
As when calling Commit with an EOF message, it will throw an InvalidOperationException.
Previously this could cause skipping an offset (<2.1.0) or message reprocessing (>=2.1.0).
New features
- New optional package
Confluent.Kafka.OAuthBearer.Awsprovides AWS IAM-based
OAUTHBEARER authentication via AWS STSGetWebIdentityToken. Activate by
settingSaslOauthbearerMethod = SaslOauthbearerMethod.Oidc,
SaslOauthbearerMetadataAuthenticationType.AwsIam, and supplying
regionandaudienceinSaslOauthbearerConfig. See the package's README
for details.
Enhancements
- References librdkafka.redist 2.15.0. Refer to the librdkafka v2.15.0 release notes for more information.
- Added support for .NET 10 (LTS) and dropped support for .NET 6 (end of support since November 2024). The library now multi-targets
net8.0andnet10.0alongsidenetstandard2.0andnet462. Builds on the approach proposed in #2545 by Fernando Luiz de Lima (@ffernandolima), adapted for the centralizedDirectory.Build.propsstructure on current master. - Adds support for union-of-pools/ auto pool mapping for Schema Registry (#2634)
Fixes
v2.14.2
Enhancements
- References librdkafka.redist 2.14.2. Refer to the librdkafka v2.14.2 release notes for more information.
- Add IHeader overload to Headers.Add() method (#2604)
Fixes
v2.14.0
Enhancements
- References librdkafka.redist 2.14.0. Refer to the librdkafka v2.14.0 release notes for more information.
- Add AssociatedNameStrategy (#2577)
- Add enableAt to RuleSet (#2593)
- Add config to validate before domain rules for JSON Schema (#2596)
- Cache FieldAccessor to address CSFLE perf with JSON (#2601)
Fixes
- Ensure dispose methods clean up properly (#2595)
v2.13.2
v2.13.1
Enhancements
- Unify build configurations and remove redundant properties (#2464)
- JSONSchema Validation Errors: Include paths to nested properties (#2554)
- Add Confluent-Client-Version header to requests to SR, C# client (#2549)
Fixes
- Fix DeriveKey in Hkdf implementation (#2559)
- Ensure single use of HttpRequestMessage for token fetch (#2544)
- Fix race conditions when retrieving KEK/DEK (#2565)
- Allowing for Confluent-Identity-Pool-Id to be optional (#2564)
- Ensure JSON schema access is thread-safe (#2567)
- Use lock on root schema when protecting access to subschemas (#2568)
- Processing arrays and maps sequentially to avoid race conditions (#2569)
v2.13.0
Enhancements
- References librdkafka.redist 2.13.0. Refer to the librdkafka v2.13.0 release notes for more information.
- Support Avro schema references for C# client (#2534)
- Add Accept-Version header (#2536)
- Handle evolution during field transformation (#2541)
- Re-enable deserialization optimization by removing unnecessary array conversions (#2531)
Fixes
v2.12.0
KIP-848 – General Availability
Starting with Confluent.Kafka 2.12.0, the next generation consumer group rebalance protocol defined in KIP-848 is production-ready. Please refer to the following migration guide for moving from Classic to Consumer protocol.
Note: The new consumer group protocol defined in KIP-848 is not enabled by default. There are few contract change associated with the new protocol and might cause breaking changes. GroupProtocol configuration property dictates whether to use the new Consumer protocol or older Classic protocol. It defaults to Classic if not provided.
Enhancements
- References librdkafka.redist 2.12.0. Refer to the librdkafka v2.12.0 release notes for more information.
- OAuth OIDC method example for Kafka metadata based authentication with
an Azure IMDS endpoint using an attached managed identity as principal (#2526).
v2.11.1
Enhancements
- References librdkafka.redist 2.11.1. Refer to the librdkafka v2.11.1 release notes for more information.