NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #791 most downloaded on NuGet
A .NET Client for Confluent Schema Registry
Last release 26 days ago
10 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 51 of 55 stable releases
23 versions withdrawn
withdrawn after publishing
127 years old
136 releases · first in 1900
Updated System.Net.Http dependency to v4.3.4 (CVE-2018-8292)
CachedSchemaRegistryClient.GetSchemaIdAsync (jeremy001181).System.Net.Http dependency to v4.3.4 (CVE-2018-8292)References Apache.Avro v1.10.2, which resolves an issue with large string deserialization AVRO-3005.
One column per quarter.
References librdkafka.redist 1.6.1. Refer to the 1.6.0 and 1.6.1 release notes for more information. Headline features:
Producer.Produce now include an inner exception with additional context on the error (joostas).ConfigureAwait(false) to async methods in the Avro Serdes.IsInvalid property to Handle class (volgunin).ProtobufSerializer (yurii-hunter).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
References librdkafka 1.5.3. Refer to the release notes for more information.
References librdkafka 1.5.2. Refer to the release notes for more information.
ISpecificRecord. In this case, data is serialized according to the per-message concrete type (@ni-mi).Added support for OAuth Authentication via SASL/OAUTHBEARER (KIP-255) (thtp).
References librdkafka 1.5.0 which brings many small improvements and bug fixes (and no new large features). Refer to the release notes for more inform
Nothing published for this version
Resolved a stack overflow issue in Error(IntPtr error) #1249 (@midnightriot)
Error(IntPtr error) #1249 (@midnightriot)Nothing published for this version
Subject names are now URL encoded when used in Schema Registry URLs.
CancellationToken to Producer.ProduceAsync.Maintenance release. Refer to the librdkafka release notes for more information.
BREAKING CHANGE: net452 is no longer a target framework of Confluent.SchemaRegistry or Confluent.SchemaRegistry.Serdes due to the switch to the offici…
SerializationContext (@pascalconfluent).CancellationToken parameter to the ProduceAsync methods.Consmer (thanks to @andypook).net452 is no longer a target framework of Confluent.SchemaRegistry or Confluent.SchemaRegistry.Serdes due to the switch to the official Apache Avro package which only targets netstandard2.0.ConsumeResult that simply delegate to the corresponding properties on ConsumeResult.Message as obsolete.ArgumentNullException regression in ListGroups (thanks to @andypook).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Deprecated properties of SchemaRegistryConfig with the (superfluous) prefix SchemaRegistry. Added corresponding properties without this prefix.
Confluent.SchemaRegistry (thanks to @fipil, @alexpedrero and @eroyal for their input).ConsumeResult now throws MessageNullException, not NullReferenceException when a message property is accessed but no message exists (thanks to @enzian for this change).SchemaRegistryConfig with the (superfluous) prefix SchemaRegistry. Added corresponding properties without this prefix.RestService was unable to communicate with Schema Registry hosted on a non-root path. Thanks to @jonathansant for this fix.Nothing published for this version
Nothing published for this version
Nothing published for this version
References librdkafka v1.2.2 which upgrades the lz4 dependency to v1.9.2.
Nothing published for this version
References librdkafka v1.2.1 which resolves an issue that broke GSSAPI authentication on Windows.
Nothing published for this version
Confluent.Kafka, Confluent.SchemaRegistry and Confluent.SchemaRegistry.Serdes are now all signed, and Confluent.Kafka.StrongName deprecated.
WARNING: There is an issue with SASL GSSAPI authentication on Windows with this release. This is resolved in v1.2.1.
IDictionary overload to Config constructors (contribution by @AndyPook).Confluent.Kafka, Confluent.SchemaRegistry and Confluent.SchemaRegistry.Serdes are now all signed, and Confluent.Kafka.StrongName deprecated.Nothing published for this version
Nothing published for this version
Nothing published for this version
References librdkafka v1.1.0. Refer to the release notes for more informtion. Notable improvement for Windows SSL users: You no longer need to specify
New LogLevelType enum and functions to convert between different log level type levels.
Nothing published for this version
1.0.0 is a major update of the API, introducing many new features and enhancements. Note: The 1.0 API is not compatible with earlier versions of the l
1.0.0 is a major update of the API, introducing many new features and enhancements. Note: The 1.0 API is not compatible with earlier versions of the library.
Feature highlights:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Revamped producer and consumer serialization functionality.
ISerializer<T> / IAsyncSerializer<T> and IDeserializer<T> / IAsyncDeserializer<T>.
ISerializer<T>/IDeserializer<T> are appropriate for most use cases.IAsyncSerializer<T>/IAsyncDeserializer<T> are async friendly, but less performant (they return Tasks).Confluent.Kafka.Avro to Confluent.SchemaRegistry.Serdes (Schema Registry may support other serialization formats in the future).Consumers, Producers and AdminClients are now constructed using builder classes.
events on the client classes have been replaced with corresponding Set...Handler methods on the builder classes.
events allow for more than one handler to be set, but this is often not appropriate (e.g. OnPartitionsAssigned), and never necessary. This is no longer possible.events are also not async friendly (handlers can't return Task). The Set...Handler appropach can be extend in such a way that it is.ICachedSchemaRegistryClient - everything is awaited.
Consumer implementation still calls async deserializers synchronously because the Consumer API is still otherwise fully synchronous.EnablePartitionEof config property).Consumer.OnPartitionEOF event in favor notifying of partition eof via ConsumeResult.IsPartitionEOF.ErrorEvent class and added IsFatal to Error class.
IsFatal flag is now set appropriately for all errors (previously it was always set to false).PersistenceStatus property to DeliveryResult, which provides information on the persitence status of the message.Close method to IConsumer interface.ProduceException.DeliveryReport to ProduceException.DeliveryResult.SchemaRegistryBasicAuthCredentialsSource back into SchemaRegistryConfig (#679).References librdkafka 1.0.0-PRE1. Highlights:
ProduceAsync #640 (regression from 0.11.x).The IDeliveryHandler interface has been deprecated.
CreateTopics, DeleteTopics, CreatePartitions, DescribeConfigs and AlterConfigs.IClient, IProducer and IConsumer interfaces (useful for dependency injection and mocking when writing tests).Handle property to all clients classes:
GetSerializingProducer method on the Producer class).AdminClient can utilize the underlying librdkafka handle from other AdminClients, Producers or Consumers.IDeserializer now exposes message data via ReadOnlySpan<byte>, directly referencing librdkafka allocated memory. This results in a considerable (up to 2x) performance increase and reduced memory.CancellationToken parameter.
ConfigPropertyNames class.Message class has been re-purposed and now encapsulates specifically the message payload only.
ProduceAsync / BeginProduce now return a DeliveryReport object and Consumer.Consume returns a ConsumeResult object.BeginProduce (not ProduceAsync), analogous to similar methods in the standard library.Action<DeliveryReportResult<TKey, TValue>> delegates, not implementations of IDeliveryHandler.IDeliveryHandler interface has been deprecated.ProduceAsync and BeginProduce, the first takes a topic name and a Message. The second takes a TopicPartition and a message.
ProduceAsync now calls SetException instead of SetResult on the returned Task, making error checking more convenient and less prone to developer mistakes.ProduceAsync calls on local queue full has been removed (result in Local_QueueFull error). This should be implemented at the application layer if required.Producer and non-deserializing Consumer types have been removed (use generic types with byte[] instead), considerably reducing API surface area.ISerializingProducer interface has been removed - you can achieve the same functionality by sharing client handles instead.Consumer.Poll method and corresponding OnMessage event have been removed. You should use Consumer.Consume instead.Consumer.OnConsumeError has been removed. Consume errors are now exposed via a ConsumeException.Consumer.Consume method now returns a ConsumeResult object, rather than a Message via an out parameter.CommitAsync has been removed (use Commit instead).Commit errors are reported via an exception and method return values have correspondingly changed.ListGroups, ListGroup, GetWatermarkOffsets, QueryWatermarkOffsets, and GetMetadata have been removed from Producer and Consumer and exposed only via AdminClient.Consumer.Close.TopicPartitionOffsetError / TopicPartitionError now return TopicPartitionOffset / TopicPartition and throw an exception in
case of error (with a Result property of type TopicPartitionOffsetError / TopicPartitionError).Error to bool.Consumer.OffsetsForTimes if provided an empty collection will return an empty collection (not throw an exception).manualPoll argument has been removed from the Producer constructor and is now a configuration option.enableDeliveryReports argument has been removed from the Producer constructor and is now a configuration option.millisecondsTimeout parameter (always preferring a TimeSpan parameter).Consumer.Consume variants with a CancellationToken parameter.Producer.Flush method variant without a timeout parameter (but with a CancellationToken parameter that is observed).SyslogLevel enumeration, which is used by the log handler delegate.ProduceAsync will return completed Tasks rather than Tasks that will never complete.null values.HasError to IsErrorMoved SyncOverAsync functionality to the Confluent.Kafka.SyncOverAsync namespace.
Added DependentAdminClientBuilder class.
Nothing published for this version
Removed SerializationContext from non-async serde interfaces.
SerializationContext from non-async serde interfaces.ISerializer interface with Serializer delegate.IDeserializer interface with Deserializer delegate.Producer.Poll can now be used with producer instances that are in background polling mode.
Producer.Poll can now be used with producer instances that are in background polling mode.
ErrorCode.Local_QueueFull error.Confluent.Kafka.Serdes namespace.CompressionType property to ProducerConfig class.References librdkafka.redist v1.0.0
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →