Releases: confluentinc/confluent-kafka-dotnet
Releases · confluentinc/confluent-kafka-dotnet
v1.2.0
Enhancements
- References librdkafka v1.2.0. Refer to the release notes for more information. Headline feature is consumer side support for transactions.
- Added
IDictionary
overload toConfig
constructors (contribution by @AndyPook). Confluent.Kafka
,Confluent.SchemaRegistry
andConfluent.SchemaRegistry.Serdes
are now all signed, andConfluent.Kafka.StrongName
depreciated.
Fixes
- Updated the librdkafka build load order so that the most featureful version is used on any given platform.
v1.1.0
- 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 a CA certificate file/directory (SslCaLocation) - librdkafka will load the CA certs by default from the Windows Root Certificate Store.
v1.0.1
v1.0.0
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:
- Inherits all of the new features in librdkafka v1.0.0
- General improvements to client classes:
- Strongly typed configuration.
- Construction is via builder classes:
- Allows/enforces that event handlers are specified at construction time.
- More extensible.
- Header support.
- New Message class abstraction and related changes.
- Consistency in error reporting across library (via exceptions).
- Support for fatal errors.
- Added AdminClient:
- CreateTopics, DeleteTopics, CreatePartitions, AlterConfigs, and DescribeConfigs methods.
- Moved ListGroups and GetMetadata methods from the Producer and Consumer classes to AdminClient.
- Producer specific improvements:
- New serialization interface:
- Non-blocking support for async serializers.
- Very flexible:
- e.g. can be easily extended to support header serialization.
- Capability to specify custom timestamps when producing messages.
- Message persistence status support.
- Renamed ProduceAsync variants with a callback to Produce.
- New serialization interface:
- Consumer improvements:
- A new rebalance API.
- New deserialization API analogous to the new serialization API.
- PartitionEOF notification is via ConsumeResult, not events.
- EOF notification is now disabled by default. To enable, set the EnablePartitionEof config property to true.
- Confluent Schema Registry integration
- Added support for basic authentication.
- Added GET subject versions to the cached schema registry client.
- Renamed Confluent.Kafka.Avro to Confluent.SchemaRegistry.Serdes in preparation for support for additional serialization formats.
v1.0.0-RC7
- Moved SyncOverAsync functionality to the Confluent.Kafka.SyncOverAsync namespace.
- Marked DependentProducerBuilder as API-SUBJECT-TO-CHANGE.
- No-op handlers are no longer registered with librdkafka if corresponding handlers are not specified in client builder classes.
- Renamed AsyncAvroSerializer to AvroSerializer and AsyncAvroDeserializer to AvroDeserializer
v1.0-RC6
New Features
- Added DependentAdminClientBuilder class.
Changes
- Reverted RC4 changes.
- Renamed AvroSerializer to AsyncAvroSerializer and AvroDeserializer to AsyncAvroDeserializer
- Added SyncOverAsyncSerializer and SyncOverAsyncDeserializer adapter classes.
- Added AsSyncOverAsync factory method to AsyncAvroSerializer and AsyncAvroDeserializer.
- Removed IAsyncDeserializer setter overloads from the ConsumerBuilder class.
- Renamed Producer.BeginProduce to Producer.Produce.
- Produce throws an exception if used when async serializers are configured.
- Made AdminClient, Producer, and Consumer classes internal.
v1.0-RC4
v1.0-RC3
New Features
Producer.Poll
can now be used with producer instances that are in background polling mode.- Typically use: Block for a minimal period of time following a
ErrorCode.Local_QueueFull
error.
- Typically use: Block for a minimal period of time following a
Changes
- Removed the
Confluent.Kafka.Serdes
namespace.
Fixes
- Added
CompressionType
property toProducerConfig
class.
v1.0-RC2
v1.0-RC1
New Features
- Added GET subject versions to the cached schema registry client.
- References librdkafka.redist 1.0.0-RC9
- supports apline linux out-of-the-box.
- fallback support (that excludes security features) for most linux distributions previously unsuppored out-of-the-box.
- fixed a dependency issue on MacOS
Changes
- A new rebalance API.
SetRebalanceHandler
has been split intoSetPartitionsAssignedHandler
andSetPartitionsRevokedHandler
.- Calling of
Assign
/Unassign
in these handlers is prohibited. - Partitions to read from / start offsets can be optionally specified manually via the return value from these handlers.
- The
Message.PersistenceStatus
property name has changed toMessage.Status
. - Moved the
GetWatermarkOffsets
andQueryWatermarkOffsets
methods from admin client to consumer. - Context is now provided to serdes via a
SerializationContext
class instance. - All errors (that don't correspond to application logic errors) that occur as the result of a call to the produce and consume methods are now reported via exceptions of type ProduceException and ConsumeException.
Fixes
- Corrected an error in the
rd_kafka_event_type
method signature which was causing incompatibility with mono. - Audited exception use across the library and made changes in various places where appropriate.
- Removed unused
CancellationToken
parameters (we will add them back when implemented). - Builder classes now return interfaces, not concrete classes.
- Removed the dependency on
CompilerServices.Unsafe
which was causingProduceAsync
to hang in some scenarios. - Fixed a deadlock-on-dispose issue in
AdminClient
. - Made
Producer.ProduceAsync
async. - Fixed deadlock in BeginProduce and Consume when using async serdes in a single threaded context.