Releases: morganstanley/modern-cpp-kafka
v2024.07.03
This release cooperates with librdkafka v2.4.0 and includes the following fixes and enhancements:
- Fixed OAuth related issues
- OAuth callback expiration should be milliseconds instead of microseconds
- Avoid throwing exception in
KafkaClient::oauthbearerTokenRefreshCallbackwhen OAuthBearer is not configured - Log error info for config issues in
KafkaClientconstructor
- Added OpenSSF Scorecard analysis
- Removed
DEBUGfromkafka::clients::Config - Removed
KafkaConsumer::poll(std::chrono::milliseconds timeout, std::vector<consumer::ConsumerRecord>& output)fromkafka::clients::consumer::KafkaConsumer - Re-organized console client tools from
toolstoconsole_clientsfolder - Updated CI platform from
ubuntu-22.04toubuntu-24.04 - Fixed build failures on Windows x64 and Ubuntu
v2023.03.07
This release cooperates with librdkafka v2.0.2 (not compatible with librdkafka v1.x.x)
- Updated README and examples.
- Removed error warning from log while a Kafka client is configured with
enable.manual.events.poll. - Added new interceptor for Kafka broker state change.
v2023.01.05
This release cooperates with librdkafka v1.9.2
-
Namespace changes
kafka::clients::producer::KafkaProducer(instead ofkafka::clients::KafkaProducer)kafka::clients::consumer::KafkaConsumer(instead ofkafka::clients::KafkaConsumer)kafka::clients::admin::AdminClient(instead ofkafka::clients::AdminClient)
-
Legacy interface removed
- No
setLogger(...)/setErrorCallback(...)/setStatsCallback(...)/setOauthbearerTokenRefreshCallback(...)any more. - No
EventsPollingOptionparameter for Kafka client initialization. - No
Interceptorparameter for Kafka client initialization.
- No
-
New
Properties- It contains all configuration info to initialize a Kafka client. The property value type could be
std::string: Most are from librdkafka configuration.std::function<...>: Callbacks forlog_cb,error_cb,stats_cboroauthbearer_token_refresh_cb.Interceptors
- New configuration property:
enable.manual.events.poll.
- It contains all configuration info to initialize a Kafka client. The property value type could be
-
Default behavior changed
enable.auto.commit=trueforKafkaConsumerby default
v2022.10.12
This release cooperates with librdkafka v1.9.2
-
New interface:
Interceptorsfor threads start/exit -
KafkaProducer: default transactional timeout changed toinfinite -
windowsplatform: avoid conflicts with macros (e.g.min,max) fromwindows.h -
Logging: remove some sensitive info from log
-
Fix build failure:
CMakefailed to find pre-installed packagerapidjson
v2022.06.15
This release cooperates with librdkafka v1.8.2
-
Remove sensitive info (e.g. password related configurations for properties) from log
-
Some trivial improvements (to avoid
clang-tidywarnings)
v2022.04.11
This release cooperates with librdkafka v1.8.2
-
Bazel build support
-
Improve CMake project
-
Some trivial fixes
v2021.12.08
This release cooperates with librdkafka v1.7.0
-
Make the
ConsumerRecordcopyable -
New addon:
KafkaMetrics- It helps to parse the statistics string (with JSON format) from
librdkafka
- It helps to parse the statistics string (with JSON format) from
v2021.10.21
This release cooperates with librdkafka v1.7.0
-
Unify
KafkaAsyncProducer&KafkaSyncProducerintoKafkaProducer- New interface
syncSend(...)for synchronous operation
- New interface
-
Unified
KafkaAutoCommitConsumer&KafkaManualCommitConsumerintoKafkaConsumer -
Refine the namespaces
-
Use lowercased namespace names
- E.g.
kafka,kafka::clients,kafka::utility, etc
- E.g.
-
New namespace
kafka::clientsfor Kafka clients and related types-
kafka::clients::KafkaProducer -
kafka::clients::producer-
Config -
RecordMetadata -
Callback
-
-
kafka::clients::KafkaConsumer -
kafka::clients::consumer-
Config -
RebalanceCallback -
OffsetCommitCallback -
ConsumerGroupMetadata -
UnorderedOffsetCommitQueue
-
-
kafka::clients::AdminClient -
kafka::clients::admin-
Config -
CreateTopicsResult -
DeleteTopicsResult -
ListTopicsResult -
DeleteRecordsResult
-
-
-
-
New addon:
KafkaRecoverableProducer- A wrapper over
KafkaProducer, which would internally re-initialize the underlying producer for fatal errors
- A wrapper over
v2021.08.25
This release cooperates with librdkafka v1.7.0
-
Support
windowsplatform -
New interface for
AdminClientAdmin::DeleteRecordsResult deleteRecords(const TopicPartitionOffsets& topicPartitionOffsets, std::chrono::milliseconds)
-
Incremental cooperative rebalancing support for
KafkaConsumer- I.e.
partition.assignment.strategy=cooperative-sticky
- I.e.
-
Unified
Errortype-
No
std::error_code(for interfaces) anymore -
Type
Erroris convertible tostd::error_code
-
-
New interface for error notification
KafkaClient::setErrorCallback(std::function<void(const Error&)> errorCb)
-
Fixed issue for
KafkaConsumersubscribe(...)/unsubscribe(...)returned too soon (before the "partition-rebalance events" being triggered)
v2021.05.25
This release cooperates with librdkafka v1.7.0
-
Improved
subscribe(...)/unsubscribe(...)interfaces (with an additionaltimeoutparameter) forKafkaConsumer -
Set default
log_levelasNOTICE(5) (for all client types) -
Fixed
C++14build failure