diff --git a/examples/AdminClient/AdminClient.csproj b/examples/AdminClient/AdminClient.csproj
index 7330915f5..ac49c260d 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..abc603092 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..09ede0bdc 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..2d7920736 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..b359d0f31 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..fef7015d3 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..5e2f6b957 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..8a45c6a20 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..f2a3b38d6 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..2536bc4ca 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..de1634a8f 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..49d162e63 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..211c7c65f 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..5cdd816cb 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..893c3cfc2 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..8e71834f5 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..3f9a3701b 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..22f4b4f00 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..b8389bb23 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..0e07d7123 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..25fb0c198 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..d96e6ec9f 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..17d93bbeb 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..e8f8b18e6 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..cafa2d660 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..a22259c45 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-RC3 *** - 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..ad63d96ca 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-RC3
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..697a0fd24 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-RC3
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..fef98ebc9 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-RC3
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..dfe16189f 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-RC3
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..4137c73ef 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-RC3
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..def0ad501 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-RC3
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..b1213acc5 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-RC3
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..0fef181c9 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-RC3
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..9bc6cc718 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-RC3
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..3c8535133 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-RC3
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..0997fb911 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-RC3
netstandard2.0;net6.0;net8.0
true
true