diff --git a/examples/AdminClient/AdminClient.csproj b/examples/AdminClient/AdminClient.csproj
index 7330915f5..38b175325 100755
--- a/examples/AdminClient/AdminClient.csproj
+++ b/examples/AdminClient/AdminClient.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/AvroBlogExamples/AvroBlogExamples.csproj b/examples/AvroBlogExamples/AvroBlogExamples.csproj
index 803a71f99..4341abbdb 100644
--- a/examples/AvroBlogExamples/AvroBlogExamples.csproj
+++ b/examples/AvroBlogExamples/AvroBlogExamples.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/AvroGeneric/AvroGeneric.csproj b/examples/AvroGeneric/AvroGeneric.csproj
index c4efa5761..926edadec 100644
--- a/examples/AvroGeneric/AvroGeneric.csproj
+++ b/examples/AvroGeneric/AvroGeneric.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/AvroGenericEncryption/AvroGenericEncryption.csproj b/examples/AvroGenericEncryption/AvroGenericEncryption.csproj
index dc137775d..dc02f5769 100644
--- a/examples/AvroGenericEncryption/AvroGenericEncryption.csproj
+++ b/examples/AvroGenericEncryption/AvroGenericEncryption.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/AvroGenericMigration/AvroGenericMigration.csproj b/examples/AvroGenericMigration/AvroGenericMigration.csproj
index 0492aa083..9c150df74 100644
--- a/examples/AvroGenericMigration/AvroGenericMigration.csproj
+++ b/examples/AvroGenericMigration/AvroGenericMigration.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/AvroSpecific/AvroSpecific.csproj b/examples/AvroSpecific/AvroSpecific.csproj
index 527305730..2d2eae381 100644
--- a/examples/AvroSpecific/AvroSpecific.csproj
+++ b/examples/AvroSpecific/AvroSpecific.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/AvroSpecificEncryption/AvroSpecificEncryption.csproj b/examples/AvroSpecificEncryption/AvroSpecificEncryption.csproj
index 4af12f3d9..0f612f2b5 100644
--- a/examples/AvroSpecificEncryption/AvroSpecificEncryption.csproj
+++ b/examples/AvroSpecificEncryption/AvroSpecificEncryption.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/Configuration/Configuration.csproj b/examples/Configuration/Configuration.csproj
index 3e0c36023..1f33926d2 100644
--- a/examples/Configuration/Configuration.csproj
+++ b/examples/Configuration/Configuration.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/ConfluentCloud/ConfluentCloud.csproj b/examples/ConfluentCloud/ConfluentCloud.csproj
index ecd33ab1a..ad6f30a81 100644
--- a/examples/ConfluentCloud/ConfluentCloud.csproj
+++ b/examples/ConfluentCloud/ConfluentCloud.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/examples/Consumer/Consumer.csproj b/examples/Consumer/Consumer.csproj
index dc762d123..43061c881 100755
--- a/examples/Consumer/Consumer.csproj
+++ b/examples/Consumer/Consumer.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/ExactlyOnce/ExactlyOnce.csproj b/examples/ExactlyOnce/ExactlyOnce.csproj
index df43f65f3..e8edfb952 100644
--- a/examples/ExactlyOnce/ExactlyOnce.csproj
+++ b/examples/ExactlyOnce/ExactlyOnce.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj b/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj
index 785472347..7a0666b9a 100644
--- a/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj
+++ b/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/JsonEncryption/JsonSerializationEncryption.csproj b/examples/JsonEncryption/JsonSerializationEncryption.csproj
index 6a3e49d2d..5a8e9eed5 100644
--- a/examples/JsonEncryption/JsonSerializationEncryption.csproj
+++ b/examples/JsonEncryption/JsonSerializationEncryption.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/JsonSerialization/JsonSerialization.csproj b/examples/JsonSerialization/JsonSerialization.csproj
index d77856b93..7080bbef2 100644
--- a/examples/JsonSerialization/JsonSerialization.csproj
+++ b/examples/JsonSerialization/JsonSerialization.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/JsonWithReferences/JsonWithReferences.csproj b/examples/JsonWithReferences/JsonWithReferences.csproj
index 792e494fa..78b6928bd 100644
--- a/examples/JsonWithReferences/JsonWithReferences.csproj
+++ b/examples/JsonWithReferences/JsonWithReferences.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/MultiProducer/MultiProducer.csproj b/examples/MultiProducer/MultiProducer.csproj
index 41b8e5264..b8be18fbe 100644
--- a/examples/MultiProducer/MultiProducer.csproj
+++ b/examples/MultiProducer/MultiProducer.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/OAuthConsumer/OAuthConsumer.csproj b/examples/OAuthConsumer/OAuthConsumer.csproj
index a1dea8e5d..a29d35430 100644
--- a/examples/OAuthConsumer/OAuthConsumer.csproj
+++ b/examples/OAuthConsumer/OAuthConsumer.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/OAuthOIDC/OAuthOIDC.csproj b/examples/OAuthOIDC/OAuthOIDC.csproj
index 9039322a7..659f58b17 100644
--- a/examples/OAuthOIDC/OAuthOIDC.csproj
+++ b/examples/OAuthOIDC/OAuthOIDC.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/OAuthProducer/OAuthProducer.csproj b/examples/OAuthProducer/OAuthProducer.csproj
index d39e4e57b..a0f818193 100644
--- a/examples/OAuthProducer/OAuthProducer.csproj
+++ b/examples/OAuthProducer/OAuthProducer.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/Producer/Producer.csproj b/examples/Producer/Producer.csproj
index be3b1df83..163b36e2e 100755
--- a/examples/Producer/Producer.csproj
+++ b/examples/Producer/Producer.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/Protobuf/Protobuf.csproj b/examples/Protobuf/Protobuf.csproj
index 321562639..fed78b511 100644
--- a/examples/Protobuf/Protobuf.csproj
+++ b/examples/Protobuf/Protobuf.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/ProtobufEncryption/ProtobufEncryption.csproj b/examples/ProtobufEncryption/ProtobufEncryption.csproj
index f2a8e4f34..22ec26eeb 100644
--- a/examples/ProtobufEncryption/ProtobufEncryption.csproj
+++ b/examples/ProtobufEncryption/ProtobufEncryption.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/SchemaRegistryOAuth/SchemaRegistryOAuth.csproj b/examples/SchemaRegistryOAuth/SchemaRegistryOAuth.csproj
index d2790d745..99141a379 100644
--- a/examples/SchemaRegistryOAuth/SchemaRegistryOAuth.csproj
+++ b/examples/SchemaRegistryOAuth/SchemaRegistryOAuth.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/TlsAuth/TlsAuth.csproj b/examples/TlsAuth/TlsAuth.csproj
index 0ebbe748f..692a0c5c4 100644
--- a/examples/TlsAuth/TlsAuth.csproj
+++ b/examples/TlsAuth/TlsAuth.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/examples/Web/Web.csproj b/examples/Web/Web.csproj
index e119bc5c4..81aee8cab 100644
--- a/examples/Web/Web.csproj
+++ b/examples/Web/Web.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/src/Confluent.Kafka/Config_gen.cs b/src/Confluent.Kafka/Config_gen.cs
index 7b7f976b3..23ad5c861 100644
--- a/src/Confluent.Kafka/Config_gen.cs
+++ b/src/Confluent.Kafka/Config_gen.cs
@@ -1,29 +1,29 @@
-// *** Auto-generated from librdkafka v2.8.0 *** - do not modify manually.
-//
-// Copyright 2018-2022 Confluent Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the 'License');
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an 'AS IS' BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Refer to LICENSE for more information.
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-
-
-namespace Confluent.Kafka
-{
+// *** Auto-generated from librdkafka v2.10.0-RC2 *** - do not modify manually.
+//
+// Copyright 2018-2022 Confluent Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the 'License');
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an 'AS IS' BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Refer to LICENSE for more information.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+
+
+namespace Confluent.Kafka
+{
///
/// Partitioner enum values
///
@@ -76,6 +76,22 @@ public enum AutoOffsetReset
Error
}
+ ///
+ /// MetadataRecoveryStrategy enum values
+ ///
+ public enum MetadataRecoveryStrategy
+ {
+ ///
+ /// None
+ ///
+ None,
+
+ ///
+ /// Rebootstrap
+ ///
+ Rebootstrap
+ }
+
///
/// BrokerAddressFamily enum values
///
@@ -254,142 +270,142 @@ public enum ClientDnsLookup
///
ResolveCanonicalBootstrapServersOnly
}
-
- ///
- /// SaslMechanism enum values
- ///
- public enum SaslMechanism
- {
- ///
- /// GSSAPI
- ///
- Gssapi,
-
- ///
- /// PLAIN
- ///
- Plain,
-
- ///
- /// SCRAM-SHA-256
- ///
- ScramSha256,
-
- ///
- /// SCRAM-SHA-512
- ///
- ScramSha512,
-
- ///
- /// OAUTHBEARER
- ///
- OAuthBearer
- }
-
- ///
- /// Acks enum values
- ///
- public enum Acks : int
- {
- ///
- /// None
- ///
- None = 0,
-
- ///
- /// Leader
- ///
- Leader = 1,
-
- ///
- /// All
- ///
- All = -1
- }
+
+ ///
+ /// SaslMechanism enum values
+ ///
+ public enum SaslMechanism
+ {
+ ///
+ /// GSSAPI
+ ///
+ Gssapi,
+
+ ///
+ /// PLAIN
+ ///
+ Plain,
+
+ ///
+ /// SCRAM-SHA-256
+ ///
+ ScramSha256,
+
+ ///
+ /// SCRAM-SHA-512
+ ///
+ ScramSha512,
+
+ ///
+ /// OAUTHBEARER
+ ///
+ OAuthBearer
+ }
+
+ ///
+ /// Acks enum values
+ ///
+ public enum Acks : int
+ {
+ ///
+ /// None
+ ///
+ None = 0,
+
+ ///
+ /// Leader
+ ///
+ Leader = 1,
+
+ ///
+ /// All
+ ///
+ All = -1
+ }
///
/// Configuration common to all clients
///
public class ClientConfig : Config
{
-
- ///
- /// Initialize a new empty instance.
- ///
- public ClientConfig() : base() { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing instance.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ClientConfig(ClientConfig config) : base(config) { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing key/value pair collection.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ClientConfig(IDictionary config) : base(config) { }
-
- ///
- /// SASL mechanism to use for authentication. Supported: GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512. **NOTE**: Despite the name, you may not configure more than one mechanism.
- ///
- public SaslMechanism? SaslMechanism
- {
- get
- {
- var r = Get("sasl.mechanism");
- if (r == null) { return null; }
- if (r == "GSSAPI") { return Confluent.Kafka.SaslMechanism.Gssapi; }
- if (r == "PLAIN") { return Confluent.Kafka.SaslMechanism.Plain; }
- if (r == "SCRAM-SHA-256") { return Confluent.Kafka.SaslMechanism.ScramSha256; }
- if (r == "SCRAM-SHA-512") { return Confluent.Kafka.SaslMechanism.ScramSha512; }
- if (r == "OAUTHBEARER") { return Confluent.Kafka.SaslMechanism.OAuthBearer; }
- throw new ArgumentException($"Unknown sasl.mechanism value {r}");
- }
- set
- {
- if (value == null) { this.properties.Remove("sasl.mechanism"); }
- else if (value == Confluent.Kafka.SaslMechanism.Gssapi) { this.properties["sasl.mechanism"] = "GSSAPI"; }
- else if (value == Confluent.Kafka.SaslMechanism.Plain) { this.properties["sasl.mechanism"] = "PLAIN"; }
- else if (value == Confluent.Kafka.SaslMechanism.ScramSha256) { this.properties["sasl.mechanism"] = "SCRAM-SHA-256"; }
- else if (value == Confluent.Kafka.SaslMechanism.ScramSha512) { this.properties["sasl.mechanism"] = "SCRAM-SHA-512"; }
- else if (value == Confluent.Kafka.SaslMechanism.OAuthBearer) { this.properties["sasl.mechanism"] = "OAUTHBEARER"; }
- else throw new ArgumentException($"Unknown sasl.mechanism value {value}");
- }
- }
-
-
- ///
- /// This field indicates the number of acknowledgements the leader broker must receive from ISR brokers
- /// before responding to the request: Zero=Broker does not send any response/ack to client, One=The
- /// leader will write the record to its local log but will respond without awaiting full acknowledgement
- /// from all followers. All=Broker will block until message is committed by all in sync replicas (ISRs).
- /// If there are less than min.insync.replicas (broker configuration) in the ISR set the produce request
- /// will fail.
- ///
- public Acks? Acks
- {
- get
- {
- var r = Get("acks");
- if (r == null) { return null; }
- if (r == "0") { return Confluent.Kafka.Acks.None; }
- if (r == "1") { return Confluent.Kafka.Acks.Leader; }
- if (r == "-1" || r == "all") { return Confluent.Kafka.Acks.All; }
- return (Acks)(int.Parse(r));
- }
- set
- {
- if (value == null) { this.properties.Remove("acks"); }
- else if (value == Confluent.Kafka.Acks.None) { this.properties["acks"] = "0"; }
- else if (value == Confluent.Kafka.Acks.Leader) { this.properties["acks"] = "1"; }
- else if (value == Confluent.Kafka.Acks.All) { this.properties["acks"] = "-1"; }
- else { this.properties["acks"] = ((int)value.Value).ToString(); }
- }
- }
-
+
+ ///
+ /// Initialize a new empty instance.
+ ///
+ public ClientConfig() : base() { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing instance.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ClientConfig(ClientConfig config) : base(config) { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing key/value pair collection.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ClientConfig(IDictionary config) : base(config) { }
+
+ ///
+ /// SASL mechanism to use for authentication. Supported: GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512. **NOTE**: Despite the name, you may not configure more than one mechanism.
+ ///
+ public SaslMechanism? SaslMechanism
+ {
+ get
+ {
+ var r = Get("sasl.mechanism");
+ if (r == null) { return null; }
+ if (r == "GSSAPI") { return Confluent.Kafka.SaslMechanism.Gssapi; }
+ if (r == "PLAIN") { return Confluent.Kafka.SaslMechanism.Plain; }
+ if (r == "SCRAM-SHA-256") { return Confluent.Kafka.SaslMechanism.ScramSha256; }
+ if (r == "SCRAM-SHA-512") { return Confluent.Kafka.SaslMechanism.ScramSha512; }
+ if (r == "OAUTHBEARER") { return Confluent.Kafka.SaslMechanism.OAuthBearer; }
+ throw new ArgumentException($"Unknown sasl.mechanism value {r}");
+ }
+ set
+ {
+ if (value == null) { this.properties.Remove("sasl.mechanism"); }
+ else if (value == Confluent.Kafka.SaslMechanism.Gssapi) { this.properties["sasl.mechanism"] = "GSSAPI"; }
+ else if (value == Confluent.Kafka.SaslMechanism.Plain) { this.properties["sasl.mechanism"] = "PLAIN"; }
+ else if (value == Confluent.Kafka.SaslMechanism.ScramSha256) { this.properties["sasl.mechanism"] = "SCRAM-SHA-256"; }
+ else if (value == Confluent.Kafka.SaslMechanism.ScramSha512) { this.properties["sasl.mechanism"] = "SCRAM-SHA-512"; }
+ else if (value == Confluent.Kafka.SaslMechanism.OAuthBearer) { this.properties["sasl.mechanism"] = "OAUTHBEARER"; }
+ else throw new ArgumentException($"Unknown sasl.mechanism value {value}");
+ }
+ }
+
+
+ ///
+ /// This field indicates the number of acknowledgements the leader broker must receive from ISR brokers
+ /// before responding to the request: Zero=Broker does not send any response/ack to client, One=The
+ /// leader will write the record to its local log but will respond without awaiting full acknowledgement
+ /// from all followers. All=Broker will block until message is committed by all in sync replicas (ISRs).
+ /// If there are less than min.insync.replicas (broker configuration) in the ISR set the produce request
+ /// will fail.
+ ///
+ public Acks? Acks
+ {
+ get
+ {
+ var r = Get("acks");
+ if (r == null) { return null; }
+ if (r == "0") { return Confluent.Kafka.Acks.None; }
+ if (r == "1") { return Confluent.Kafka.Acks.Leader; }
+ if (r == "-1" || r == "all") { return Confluent.Kafka.Acks.All; }
+ return (Acks)(int.Parse(r));
+ }
+ set
+ {
+ if (value == null) { this.properties.Remove("acks"); }
+ else if (value == Confluent.Kafka.Acks.None) { this.properties["acks"] = "0"; }
+ else if (value == Confluent.Kafka.Acks.Leader) { this.properties["acks"] = "1"; }
+ else if (value == Confluent.Kafka.Acks.All) { this.properties["acks"] = "-1"; }
+ else { this.properties["acks"] = ((int)value.Value).ToString(); }
+ }
+ }
+
///
/// Client identifier.
///
@@ -438,6 +454,14 @@ public Acks? Acks
///
public int? MaxInFlight { get { return GetInt("max.in.flight"); } set { this.SetObject("max.in.flight", value); } }
+ ///
+ /// Controls how the client recovers when none of the brokers known to it is available. If set to `none`, the client fails with a fatal error. If set to `rebootstrap`, the client repeats the bootstrap process using `bootstrap.servers` and brokers added through `rd_kafka_brokers_add()`. Rebootstrapping is useful when a client communicates with brokers so infrequently that the set of brokers may change entirely before the client refreshes metadata. Metadata recovery is triggered when all last-known brokers appear unavailable simultaneously.
+ ///
+ /// default: rebootstrap
+ /// importance: low
+ ///
+ public MetadataRecoveryStrategy? MetadataRecoveryStrategy { get { return (MetadataRecoveryStrategy?)GetEnum(typeof(MetadataRecoveryStrategy), "metadata.recovery.strategy"); } set { this.SetObject("metadata.recovery.strategy", value); } }
+
///
/// Period of time in milliseconds at which topic and broker metadata is refreshed in order to proactively discover any new brokers, topics, partitions or partition leader changes. Use -1 to disable the intervalled refresh (not recommended). If there are no locally referenced topics (no topic objects created, no messages produced, no subscription or no assignment) then only the broker list will be refreshed every interval but no more often than every 10s.
///
@@ -529,7 +553,7 @@ public Acks? Acks
///
/// Disable the Nagle algorithm (TCP_NODELAY) on broker sockets.
///
- /// default: false
+ /// default: true
/// importance: low
///
public bool? SocketNagleDisable { get { return GetBool("socket.nagle.disable"); } set { this.SetObject("socket.nagle.disable", value); } }
@@ -639,7 +663,7 @@ public Acks? Acks
public int? InternalTerminationSignal { get { return GetInt("internal.termination.signal"); } set { this.SetObject("internal.termination.signal", value); } }
///
- /// Request broker's supported API versions to adjust functionality to available protocol features. If set to false, or the ApiVersionRequest fails, the fallback version `broker.version.fallback` will be used. **NOTE**: Depends on broker version >=0.10.0. If the request is not supported by (an older) broker the `broker.version.fallback` fallback is used.
+ /// **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Request broker's supported API versions to adjust functionality to available protocol features. If set to false, or the ApiVersionRequest fails, the fallback version `broker.version.fallback` will be used. **NOTE**: Depends on broker version >=0.10.0. If the request is not supported by (an older) broker the `broker.version.fallback` fallback is used.
///
/// default: true
/// importance: high
@@ -655,7 +679,7 @@ public Acks? Acks
public int? ApiVersionRequestTimeoutMs { get { return GetInt("api.version.request.timeout.ms"); } set { this.SetObject("api.version.request.timeout.ms", value); } }
///
- /// Dictates how long the `broker.version.fallback` fallback is used in the case the ApiVersionRequest fails. **NOTE**: The ApiVersionRequest is only issued when a new connection to the broker is made (such as after an upgrade).
+ /// **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Dictates how long the `broker.version.fallback` fallback is used in the case the ApiVersionRequest fails. **NOTE**: The ApiVersionRequest is only issued when a new connection to the broker is made (such as after an upgrade).
///
/// default: 0
/// importance: medium
@@ -663,7 +687,7 @@ public Acks? Acks
public int? ApiVersionFallbackMs { get { return GetInt("api.version.fallback.ms"); } set { this.SetObject("api.version.fallback.ms", value); } }
///
- /// Older broker versions (before 0.10.0) provide no way for a client to query for supported protocol features (ApiVersionRequest, see `api.version.request`) making it impossible for the client to know what features it may use. As a workaround a user may set this property to the expected broker version and the client will automatically adjust its feature set accordingly if the ApiVersionRequest fails (or is disabled). The fallback broker version will be used for `api.version.fallback.ms`. Valid values are: 0.9.0, 0.8.2, 0.8.1, 0.8.0. Any other value >= 0.10, such as 0.10.2.1, enables ApiVersionRequests.
+ /// **DEPRECATED** **Post-deprecation actions: remove this configuration property, brokers < 0.10.0 won't be supported anymore in librdkafka 3.x.** Older broker versions (before 0.10.0) provide no way for a client to query for supported protocol features (ApiVersionRequest, see `api.version.request`) making it impossible for the client to know what features it may use. As a workaround a user may set this property to the expected broker version and the client will automatically adjust its feature set accordingly if the ApiVersionRequest fails (or is disabled). The fallback broker version will be used for `api.version.fallback.ms`. Valid values are: 0.9.0, 0.8.2, 0.8.1, 0.8.0. Any other value >= 0.10, such as 0.10.2.1, enables ApiVersionRequests.
///
/// default: 0.10.0
/// importance: medium
@@ -1006,124 +1030,124 @@ public Acks? Acks
///
public bool? EnableMetricsPush { get { return GetBool("enable.metrics.push"); } set { this.SetObject("enable.metrics.push", value); } }
- }
-
+ }
+
///
/// AdminClient configuration properties
///
public class AdminClientConfig : ClientConfig
{
-
- ///
- /// Initialize a new empty instance.
- ///
- public AdminClientConfig() : base() { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing instance.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public AdminClientConfig(ClientConfig config) : base(config) { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing key/value pair collection.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public AdminClientConfig(IDictionary config) : base(config) { }
-
- ///
- /// Check if any properties have been set that have implications for
- /// application logic and therefore shouldn't be set via external
- /// configuration, independent of the code. Throw an ArgumentException
- /// if so.
- ///
- /// There are currently no such AdminClient configuration properties
- /// and this method will never throw.
- ///
- public AdminClientConfig ThrowIfContainsNonUserConfigurable()
- {
- // noop
- return this;
- }
-
- }
-
+
+ ///
+ /// Initialize a new empty instance.
+ ///
+ public AdminClientConfig() : base() { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing instance.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public AdminClientConfig(ClientConfig config) : base(config) { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing key/value pair collection.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public AdminClientConfig(IDictionary config) : base(config) { }
+
+ ///
+ /// Check if any properties have been set that have implications for
+ /// application logic and therefore shouldn't be set via external
+ /// configuration, independent of the code. Throw an ArgumentException
+ /// if so.
+ ///
+ /// There are currently no such AdminClient configuration properties
+ /// and this method will never throw.
+ ///
+ public AdminClientConfig ThrowIfContainsNonUserConfigurable()
+ {
+ // noop
+ return this;
+ }
+
+ }
+
///
/// Producer configuration properties
///
public class ProducerConfig : ClientConfig
{
-
- ///
- /// Initialize a new empty instance.
- ///
- public ProducerConfig() : base() { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing instance.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ProducerConfig(ClientConfig config) : base(config) { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing key/value pair collection.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ProducerConfig(IDictionary config) : base(config) { }
-
- ///
- /// Check if any properties have been set that have implications for
- /// application logic and therefore shouldn't be set via external
- /// configuration, independent of the code. Throw an ArgumentException
- /// if so.
- ///
- /// There are currently no such Producer configuration properties
- /// and this method will never throw.
- ///
- public ProducerConfig ThrowIfContainsNonUserConfigurable()
- {
- // noop
- return this;
- }
-
- ///
- /// Specifies whether or not the producer should start a background poll
- /// thread to receive delivery reports and event notifications. Generally,
- /// this should be set to true. If set to false, you will need to call
- /// the Poll function manually.
- ///
- /// default: true
- /// importance: low
- ///
- public bool? EnableBackgroundPoll { get { return GetBool("dotnet.producer.enable.background.poll"); } set { this.SetObject("dotnet.producer.enable.background.poll", value); } }
-
- ///
- /// Specifies whether to enable notification of delivery reports. Typically
- /// you should set this parameter to true. Set it to false for "fire and
- /// forget" semantics and a small boost in performance.
- ///
- /// default: true
- /// importance: low
- ///
- public bool? EnableDeliveryReports { get { return GetBool("dotnet.producer.enable.delivery.reports"); } set { this.SetObject("dotnet.producer.enable.delivery.reports", value); } }
-
- ///
- /// A comma separated list of fields that may be optionally set in delivery
- /// reports. Disabling delivery report fields that you do not require will
- /// improve maximum throughput and reduce memory usage. Allowed values:
- /// key, value, timestamp, headers, status, all, none.
- ///
- /// default: all
- /// importance: low
- ///
- public string DeliveryReportFields { get { return Get("dotnet.producer.delivery.report.fields"); } set { this.SetObject("dotnet.producer.delivery.report.fields", value.ToString()); } }
-
+
+ ///
+ /// Initialize a new empty instance.
+ ///
+ public ProducerConfig() : base() { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing instance.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ProducerConfig(ClientConfig config) : base(config) { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing key/value pair collection.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ProducerConfig(IDictionary config) : base(config) { }
+
+ ///
+ /// Check if any properties have been set that have implications for
+ /// application logic and therefore shouldn't be set via external
+ /// configuration, independent of the code. Throw an ArgumentException
+ /// if so.
+ ///
+ /// There are currently no such Producer configuration properties
+ /// and this method will never throw.
+ ///
+ public ProducerConfig ThrowIfContainsNonUserConfigurable()
+ {
+ // noop
+ return this;
+ }
+
+ ///
+ /// Specifies whether or not the producer should start a background poll
+ /// thread to receive delivery reports and event notifications. Generally,
+ /// this should be set to true. If set to false, you will need to call
+ /// the Poll function manually.
+ ///
+ /// default: true
+ /// importance: low
+ ///
+ public bool? EnableBackgroundPoll { get { return GetBool("dotnet.producer.enable.background.poll"); } set { this.SetObject("dotnet.producer.enable.background.poll", value); } }
+
+ ///
+ /// Specifies whether to enable notification of delivery reports. Typically
+ /// you should set this parameter to true. Set it to false for "fire and
+ /// forget" semantics and a small boost in performance.
+ ///
+ /// default: true
+ /// importance: low
+ ///
+ public bool? EnableDeliveryReports { get { return GetBool("dotnet.producer.enable.delivery.reports"); } set { this.SetObject("dotnet.producer.enable.delivery.reports", value); } }
+
+ ///
+ /// A comma separated list of fields that may be optionally set in delivery
+ /// reports. Disabling delivery report fields that you do not require will
+ /// improve maximum throughput and reduce memory usage. Allowed values:
+ /// key, value, timestamp, headers, status, all, none.
+ ///
+ /// default: all
+ /// importance: low
+ ///
+ public string DeliveryReportFields { get { return Get("dotnet.producer.delivery.report.fields"); } set { this.SetObject("dotnet.producer.delivery.report.fields", value.ToString()); } }
+
///
/// The ack timeout of the producer request in milliseconds. This value is only enforced by the broker and relies on `request.required.acks` being != 0.
///
@@ -1260,62 +1284,62 @@ public ProducerConfig ThrowIfContainsNonUserConfigurable()
///
public int? StickyPartitioningLingerMs { get { return GetInt("sticky.partitioning.linger.ms"); } set { this.SetObject("sticky.partitioning.linger.ms", value); } }
- }
-
+ }
+
///
/// Consumer configuration properties
///
public class ConsumerConfig : ClientConfig
{
-
- ///
- /// Initialize a new empty instance.
- ///
- public ConsumerConfig() : base() { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing instance.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ConsumerConfig(ClientConfig config) : base(config) { }
-
- ///
- /// Initialize a new instance wrapping
- /// an existing key/value pair collection.
- /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
- ///
- public ConsumerConfig(IDictionary config) : base(config) { }
-
- ///
- /// Check if any properties have been set that have implications for
- /// application logic and therefore shouldn't be set via external
- /// configuration, independent of the code. Throw an ArgumentException
- /// if so.
- ///
- public ConsumerConfig ThrowIfContainsNonUserConfigurable()
- {
- var toCheck = new string[] { "enable.partition.eof", "partition.assignment.strategy", "enable.auto.commit", "enable.auto.offset.store" };
- this.Where(kv => toCheck.Contains(kv.Key)).ToList()
- .ForEach(kv => { throw new ArgumentException($"Consumer config property '{kv.Key}' is not user configurable."); });
- return this;
- }
-
- ///
- /// A comma separated list of fields that may be optionally set
- /// in
- /// objects returned by the
- ///
- /// method. Disabling fields that you do not require will improve
- /// throughput and reduce memory consumption. Allowed values:
- /// headers, timestamp, topic, all, none
- ///
- /// default: all
- /// importance: low
- ///
- public string ConsumeResultFields { set { this.SetObject("dotnet.consumer.consume.result.fields", value); } }
-
+
+ ///
+ /// Initialize a new empty instance.
+ ///
+ public ConsumerConfig() : base() { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing instance.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ConsumerConfig(ClientConfig config) : base(config) { }
+
+ ///
+ /// Initialize a new instance wrapping
+ /// an existing key/value pair collection.
+ /// This will change the values "in-place" i.e. operations on this class WILL modify the provided collection
+ ///
+ public ConsumerConfig(IDictionary config) : base(config) { }
+
+ ///
+ /// Check if any properties have been set that have implications for
+ /// application logic and therefore shouldn't be set via external
+ /// configuration, independent of the code. Throw an ArgumentException
+ /// if so.
+ ///
+ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
+ {
+ var toCheck = new string[] { "enable.partition.eof", "partition.assignment.strategy", "enable.auto.commit", "enable.auto.offset.store" };
+ this.Where(kv => toCheck.Contains(kv.Key)).ToList()
+ .ForEach(kv => { throw new ArgumentException($"Consumer config property '{kv.Key}' is not user configurable."); });
+ return this;
+ }
+
+ ///
+ /// A comma separated list of fields that may be optionally set
+ /// in
+ /// objects returned by the
+ ///
+ /// method. Disabling fields that you do not require will improve
+ /// throughput and reduce memory consumption. Allowed values:
+ /// headers, timestamp, topic, all, none
+ ///
+ /// default: all
+ /// importance: low
+ ///
+ public string ConsumeResultFields { set { this.SetObject("dotnet.consumer.consume.result.fields", value); } }
+
///
/// Action to take when there is no initial offset in offset store or the desired offset is out of range: 'smallest','earliest' - automatically reset the offset to the smallest offset, 'largest','latest' - automatically reset the offset to the largest offset, 'error' - trigger an error (ERR__AUTO_OFFSET_RESET) which is retrieved by consuming messages and checking 'message->err'.
///
@@ -1341,7 +1365,7 @@ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
public string GroupInstanceId { get { return Get("group.instance.id"); } set { this.SetObject("group.instance.id", value); } }
///
- /// The name of one or more partition assignment strategies. The elected group leader will use a strategy supported by all members of the group to assign partitions to group members. If there is more than one eligible strategy, preference is determined by the order of this list (strategies earlier in the list have higher priority). Cooperative and non-cooperative (eager) strategies must not be mixed. Available strategies: range, roundrobin, cooperative-sticky.
+ /// The name of one or more partition assignment strategies. The elected group leader will use a strategy supported by all members of the group to assign partitions to group members. If there is more than one eligible strategy, preference is determined by the order of this list (strategies earlier in the list have higher priority). Cooperative and non-cooperative (eager)strategies must not be mixed. `partition.assignment.strategy` is not supported for `group.protocol=consumer`. Use `group.remote.assignor` instead. Available strategies: range, roundrobin, cooperative-sticky.
///
/// default: range,roundrobin
/// importance: medium
@@ -1349,7 +1373,7 @@ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
public PartitionAssignmentStrategy? PartitionAssignmentStrategy { get { return (PartitionAssignmentStrategy?)GetEnum(typeof(PartitionAssignmentStrategy), "partition.assignment.strategy"); } set { this.SetObject("partition.assignment.strategy", value); } }
///
- /// Client group session and failure detection timeout. The consumer sends periodic heartbeats (heartbeat.interval.ms) to indicate its liveness to the broker. If no hearts are received by the broker for a group member within the session timeout, the broker will remove the consumer from the group and trigger a rebalance. The allowed range is configured with the **broker** configuration properties `group.min.session.timeout.ms` and `group.max.session.timeout.ms`. Also see `max.poll.interval.ms`.
+ /// Client group session and failure detection timeout. The consumer sends periodic heartbeats (heartbeat.interval.ms) to indicate its liveness to the broker. If no hearts are received by the broker for a group member within the session timeout, the broker will remove the consumer from the group and trigger a rebalance. The allowed range is configured with the **broker** configuration properties `group.min.session.timeout.ms` and `group.max.session.timeout.ms`. `session.timeout.ms` is not supported for `group.protocol=consumer`. It is set with the broker configuration property `group.consumer.session.timeout.ms` by default or can be configured through the AdminClient IncrementalAlterConfigs API. The allowed range is configured with the broker configuration properties `group.consumer.min.session.timeout.ms` and `group.consumer.max.session.timeout.ms`. Also see `max.poll.interval.ms`.
///
/// default: 45000
/// importance: high
@@ -1357,7 +1381,7 @@ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
public int? SessionTimeoutMs { get { return GetInt("session.timeout.ms"); } set { this.SetObject("session.timeout.ms", value); } }
///
- /// Group session keepalive heartbeat interval.
+ /// Group session keepalive heartbeat interval. `heartbeat.interval.ms` is not supported for `group.protocol=consumer`. It is set with the broker configuration property `group.consumer.heartbeat.interval.ms` by default or can be configured through the AdminClient IncrementalAlterConfigs API. The allowed range is configured with the broker configuration properties `group.consumer.min.heartbeat.interval.ms` and `group.consumer.max.heartbeat.interval.ms`.
///
/// default: 3000
/// importance: low
@@ -1365,7 +1389,7 @@ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
public int? HeartbeatIntervalMs { get { return GetInt("heartbeat.interval.ms"); } set { this.SetObject("heartbeat.interval.ms", value); } }
///
- /// Group protocol type for the `classic` group protocol. NOTE: Currently, the only supported group protocol type is `consumer`.
+ /// Group protocol type for the `classic` group protocol. NOTE: Currently, the only supported group protocol type is `consumer`. `group.protocol.type` is not supported for `group.protocol=consumer`
///
/// default: consumer
/// importance: low
@@ -1516,6 +1540,6 @@ public ConsumerConfig ThrowIfContainsNonUserConfigurable()
///
public bool? CheckCrcs { get { return GetBool("check.crcs"); } set { this.SetObject("check.crcs", value); } }
- }
-
-}
+ }
+
+}
diff --git a/src/Confluent.Kafka/Confluent.Kafka.csproj b/src/Confluent.Kafka/Confluent.Kafka.csproj
index 218fdd85b..2aaaf9d1f 100644
--- a/src/Confluent.Kafka/Confluent.Kafka.csproj
+++ b/src/Confluent.Kafka/Confluent.Kafka.csproj
@@ -16,7 +16,7 @@
README.md
Confluent.Kafka
Confluent.Kafka
- 2.9.0
+ 2.10.0-RC2
netstandard2.0;net462;net6.0;net8.0
true
true
@@ -25,7 +25,7 @@
-
+
None
diff --git a/src/Confluent.SchemaRegistry.Encryption.Aws/Confluent.SchemaRegistry.Encryption.Aws.csproj b/src/Confluent.SchemaRegistry.Encryption.Aws/Confluent.SchemaRegistry.Encryption.Aws.csproj
index 54144df47..0cce8beec 100644
--- a/src/Confluent.SchemaRegistry.Encryption.Aws/Confluent.SchemaRegistry.Encryption.Aws.csproj
+++ b/src/Confluent.SchemaRegistry.Encryption.Aws/Confluent.SchemaRegistry.Encryption.Aws.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Encryption.Aws
Confluent.SchemaRegistry.Encryption.Aws
Confluent.SchemaRegistry.Encryption.Aws
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Encryption.Azure/Confluent.SchemaRegistry.Encryption.Azure.csproj b/src/Confluent.SchemaRegistry.Encryption.Azure/Confluent.SchemaRegistry.Encryption.Azure.csproj
index 410a138c6..d80c6782d 100644
--- a/src/Confluent.SchemaRegistry.Encryption.Azure/Confluent.SchemaRegistry.Encryption.Azure.csproj
+++ b/src/Confluent.SchemaRegistry.Encryption.Azure/Confluent.SchemaRegistry.Encryption.Azure.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Encryption.Azure
Confluent.SchemaRegistry.Encryption.Azure
Confluent.SchemaRegistry.Encryption.Azure
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Encryption.Gcp/Confluent.SchemaRegistry.Encryption.Gcp.csproj b/src/Confluent.SchemaRegistry.Encryption.Gcp/Confluent.SchemaRegistry.Encryption.Gcp.csproj
index be90eb6eb..43c758209 100644
--- a/src/Confluent.SchemaRegistry.Encryption.Gcp/Confluent.SchemaRegistry.Encryption.Gcp.csproj
+++ b/src/Confluent.SchemaRegistry.Encryption.Gcp/Confluent.SchemaRegistry.Encryption.Gcp.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Encryption.Gcp
Confluent.SchemaRegistry.Encryption.Gcp
Confluent.SchemaRegistry.Encryption.Gcp
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Encryption.HcVault/Confluent.SchemaRegistry.Encryption.HcVault.csproj b/src/Confluent.SchemaRegistry.Encryption.HcVault/Confluent.SchemaRegistry.Encryption.HcVault.csproj
index 493f2dd8a..9530c874f 100644
--- a/src/Confluent.SchemaRegistry.Encryption.HcVault/Confluent.SchemaRegistry.Encryption.HcVault.csproj
+++ b/src/Confluent.SchemaRegistry.Encryption.HcVault/Confluent.SchemaRegistry.Encryption.HcVault.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Encryption.HcVault
Confluent.SchemaRegistry.Encryption.HcVault
Confluent.SchemaRegistry.Encryption.HcVault
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Encryption/Confluent.SchemaRegistry.Encryption.csproj b/src/Confluent.SchemaRegistry.Encryption/Confluent.SchemaRegistry.Encryption.csproj
index 766db0330..402b033c3 100644
--- a/src/Confluent.SchemaRegistry.Encryption/Confluent.SchemaRegistry.Encryption.csproj
+++ b/src/Confluent.SchemaRegistry.Encryption/Confluent.SchemaRegistry.Encryption.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Encryption
Confluent.SchemaRegistry.Encryption
Confluent.SchemaRegistry.Encryption
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Rules/Confluent.SchemaRegistry.Rules.csproj b/src/Confluent.SchemaRegistry.Rules/Confluent.SchemaRegistry.Rules.csproj
index 93f060a07..cc1a93b2f 100644
--- a/src/Confluent.SchemaRegistry.Rules/Confluent.SchemaRegistry.Rules.csproj
+++ b/src/Confluent.SchemaRegistry.Rules/Confluent.SchemaRegistry.Rules.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Rules
Confluent.SchemaRegistry.Rules
Confluent.SchemaRegistry.Rules
- 2.9.0
+ 2.10.0-RC2
net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj b/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj
index 9e25f3185..b7d577eea 100644
--- a/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj
+++ b/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Serdes.Avro
Confluent.SchemaRegistry.Serdes.Avro
Confluent.SchemaRegistry.Serdes.Avro
- 2.9.0
+ 2.10.0-RC2
netstandard2.0;net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj b/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj
index 2851684dd..14be49c85 100644
--- a/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj
+++ b/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj
@@ -15,7 +15,7 @@
Confluent.SchemaRegistry.Serdes.Json
Confluent.SchemaRegistry.Serdes.Json
Confluent.SchemaRegistry.Serdes.Json
- 2.9.0
+ 2.10.0-RC2
netstandard2.0;net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj b/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj
index fa2c4efda..fa40b63a9 100644
--- a/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj
+++ b/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj
@@ -16,7 +16,7 @@
Confluent.SchemaRegistry.Serdes.Protobuf
Confluent.SchemaRegistry.Serdes.Protobuf
Confluent.SchemaRegistry.Serdes.Protobuf
- 2.9.0
+ 2.10.0-RC2
netstandard2.0;net6.0;net8.0
true
true
diff --git a/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj b/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj
index c16d0291a..9b1496673 100644
--- a/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj
+++ b/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj
@@ -16,7 +16,7 @@
Confluent.SchemaRegistry
Confluent.SchemaRegistry
Confluent.SchemaRegistry
- 2.9.0
+ 2.10.0-RC2
netstandard2.0;net6.0;net8.0
true
true