All notable changes to this project will be documented in this file.
[0.12.0] 2024-01-10
- Improved the performance of schema and schema cache by @gunli in apache#1033
- Fixed return when registerSendOrAckOp() failed by @gunli in apache#1045
- Fixed the incorrect link in the release process by @RobertIndie in apache#1050
- Fixed Producer by checking if message is nil by @gunli in apache#1047
- Added 0.11.0 change log by @RobertIndie in apache#1048
- Fixed 0.11.0 change log by @RobertIndie in apache#1054
- Fixed issue 877 where ctx in partitionProducer.Send() was not performing as expected by @Gleiphir2769 in apache#1053
- Fixed Producer by stopping block request even if Value and Payload are both set by @gunli in apache#1052
- Improved Producer by simplifying the flush logic by @gunli in apache#1049
- Fixed issue 1051: inaccurate producer memory limit in chunking and schema by @Gleiphir2769 in apache#1055
- Fixed issue by sending Close Command on Producer/Consumer create timeout by @michaeljmarshall in apache#1061
- Fixed issue 1057: producer flush operation is not guaranteed to flush all messages by @Gleiphir2769 in apache#1058
- Fixed issue 1064: panic when trying to flush in DisableBatching=true by @Gleiphir2769 in apache#1065
- Fixed transaction acknowledgement and send logic for chunk message by @liangyepianzhou in apache#1069
- Fixed issue by closing consumer resources if creation fails by @michaeljmarshall in apache#1070
- Fixed issue where client reconnected every authenticationRefreshCheckSeconds when using TLS authentication by @jffp113 in apache#1062
- Corrected the SendAsync() description by @Gleiphir2769 in apache#1066
- CI: replaced license header checker and formatter by @tisonkun in apache#1077
- Chore: allowed rebase and merge by @tisonkun in apache#1080
- Adopted pulsar-admin-go sources by @tisonkun in apache#1079
- Reverted: allowed rebase and merge by @tisonkun in apache#1081
- Fixed producer by failing all messages that are pending requests when closing like Java by @graysonzeng in apache#1059
- Supported load config from env by @tuteng in apache#1089
- Fixed issue where multiple calls to client.Close causes panic by @crossoverJie in apache#1046
- Improved client by implementing GetLastMSgID for Reader by @liangyepianzhou in apache#1087
- Fixed comment for ConnectionMaxIdleTime by @massakam in apache#1091
- Issue 1094: connectionTimeout respects net.Dialer default timeout by @zzzming in apache#1095
- Supported OAuth2 with scope field by @labuladong in apache#1097
- Fixed issue where DisableReplication flag does not work by @massakam in apache#1100
- Double-checked before consumer reconnect by @zccold in apache#1084
- Fixed schema error by @leizhiyuan in apache#823
- PR-1071-1: renamed pendingItem.Complete() to pendingItem.done() by @gunli in apache#1109
- PR-1071-2: added sendRequest.done() to release resource together by @gunli in apache#1110
- Refactor: factored out validateMsg by @tisonkun in apache#1117
- Refactor: factored out prepareTransaction by @tisonkun in apache#1118
- Completed comment on ProducerInterceptor interface BeforeSend method by @ojcm in apache#1119
- Refactor: prepared sendrequest and moved to internalSendAsync by @tisonkun in apache#1120
- Fix: normalized all send request resource release into sr.done by @tisonkun in apache#1121
- Improvement: added func blockIfQueueFull() to encapsulate DisableBlockIfQue… by @gunli in apache#1122
- Improved debug log clarity in ReceivedSendReceipt() by @gunli in apache#1123
- Fixed issue 1098 by checking batchBuilder in case batch is disabled by @zzzming in apache#1099
- Fixed Producer by fixing reconnection backoff logic by @gunli in apache#1125
- Added 0.11.1 change log by @RobertIndie in apache#1092
- Fixed dead link to the KEYS file in the release process by @RobertIndie in apache#1127
- Improved performance by pooling sendRequest by @gunli in apache#1126
- Fixed argument order to Errorf in TableView message handling by @ojcm in apache#1130
- Fixed Producer by double-checking before reconnect by @gunli in apache#1131
- Fixed issue where client must not retry connecting to broker when topic is terminated by @pkumar-singh in apache#1128
- Issue 1132: Fixed JSONSchema unmarshalling in TableView by @ojcm in apache#1133
- Improved by setting dlq producerName by @crossoverJie in apache#1137
- Fixed channel deadlock in regexp consumer by @goncalo-rodrigues in apache#1141
- Fixed Producer: handled TopicNotFound/TopicTerminated/ProducerBlockedQuotaExceededException/ProducerFenced when reconnecting by @gunli in apache#1134
- Transaction: Avoided a panic when using transaction by @Gilthoniel in apache#1144
- Improved by updating connection.lastDataReceivedTime when connection is ready by @gunli in apache#1145
- Improved Producer by normalizing and exporting the errors by @gunli in apache#1143
- Updated Unsubscribe() interface comment by @geniusjoe in apache#1146
- Issue 1105: Fixed AutoTopicCreation for type non-partitioned by @tomjo in apache#1107
- Added test for admin topic creation by @RobertIndie in apache#1152
- Implemented GetTopicAutoCreation by @jiangpengcheng in apache#1151
- Bumped github.com/dvsekhvalnov/jose2go from 1.5.0 to 1.6.0 by @dependabot in apache#1150
- Bump golang.org/x/net from 0.0.0-20220225172249-27dd8689420f to 0.17.0 by @BewareMyPower in apache#1155
- Fix DLQ producer name conflicts when multiples consumers send messages to DLQ by @crossoverJie in apache#1156
- @jffp113 made their first contribution in apache#1062
- @tuteng made their first contribution in apache#1089
- @zccold made their first contribution in apache#1084
- @ojcm made their first contribution in apache#1119
- @pkumar-singh made their first contribution in apache#1128
- @goncalo-rodrigues made their first contribution in apache#1141
- @Gilthoniel made their first contribution in apache#1144
- @geniusjoe made their first contribution in apache#1146
- @tomjo made their first contribution in apache#1107
- @jiangpengcheng made their first contribution in apache#1151
- @dependabot made their first contribution in apache#1150
[0.11.1] 2023-09-11
- Close consumer resources if the creation fails by @michaeljmarshall in #1070
- Fix the transaction acknowledgement and send logic for chunked message by @liangyepianzhou in #1069
- Correct the
SendAsync()
description by @Gleiphir2769 in #1066 - Fix the panic when try to flush in
DisableBatching=true
by @Gleiphir2769 in #1065 - Fix client reconnected every authenticationRefreshCheckSeconds when using tls authentication by @jffp113 in #1062
- Send Close Command on Producer/Consumer create timeout by @michaeljmarshall in #1061
- Fail all messages that are pending requests when closing by @graysonzeng in #1059
- Fix the producer flush opertion is not guarantee to flush all messages by @Gleiphir2769 in #1058
- Fix inaccurate producer mem limit in chunking and schema by @Gleiphir2769 in #1055
- Fix ctx in
partitionProducer.Send()
is not performing as expected by @Gleiphir2769 in #1053 - Stop block request even if Value and Payload are both set by @gunli in #1052
- Simplify the flush logic by @gunli in #1049
- Check if message is nil by @gunli in #1047
- Return when registerSendOrAckOp() failed by @gunli in #1045
Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.11.0...v0.11.1-candidate-1
[0.11.0] 2023-07-04
- Support the schema type ProtoNativeSchema by @gaoran10 in apache#1006
- Implement transactional consumer/producer API by @liangyepianzhou in apache#1002
- Support NonDurable subscriptions by @dinghram in apache#992
- Allow user to specify TLS ciphers an min/max TLS version by @dinghram in apache#1041
- Add single partition router by @crossoverJie in apache#999
- Fix missing link in the release process by @RobertIndie in apache#1000
- Stablize golangci-lint task in CI by @tisonkun in apache#1007
- Fix reconnection backoff logic by @wolfstudy in apache#1008
- Change token name to
GITHUB_TOKEN
in CI by @labuladong in apache#910 - Add links to client docs and feature matrix in README.md by @momo-jun in apache#1014
- Fix flaky test
TestMaxPendingChunkMessages
by @Gleiphir2769 in apache#1003 - Fix flaky test in
negative_acks_tracker_test.go
by @RobertIndie in apache#1017 - Fix event time not being set when batching is disabled by @RobertIndie in apache#1015
- Use maphash instead of crypto/sha256 for hash function of hashmap in Schema.hash() by @bpereto in apache#1022
- Improve logs on failTimeoutMessages by @tisonkun in apache#1025
- Delete LICENSE-go-rate.txt by @tisonkun in apache#1028
- Fix broken master by upgrading JRE to 17 by @BewareMyPower in apache#1030
- Split sendRequest and make reconnectToBroker and other operation in the same coroutine by @zengguan in apache#1029
- Install openjdk-17 in Dockerfile by @crossoverJie in apache#1037
- Fix ordering key not being set and parsed when batching is disabled by @RobertIndie in apache#1034
- Check if callback is nil before calling it by @gunli in apache#1036
- Refactor duplicated code lines and fix typo errors by @gunli in apache#1039
- @gaoran10 made their first contribution in apache#1006
- @momo-jun made their first contribution in apache#1014
- @bpereto made their first contribution in apache#1022
- @zengguan made their first contribution in apache#1029
- @gunli made their first contribution in apache#1036
Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.10.0...v0.11.0-candidate-1
[0.10.0] 2023-03-27
- Support chunking for big messages by @Gleiphir2769 in apache#805
- Add BackoffPolicy to
reader
and improve test case by @labuladong in apache#889 - Support cumulative acknowledgment by @Gleiphir2769 in apache#903
- Support consumer event listener by @labuladong in apache#904
- Allow CustomProperties when sending messages for retry by @ngoyal16 in apache#916
- Support batch index ACK by @BewareMyPower in apache#938
- Support Exclusive Producer access mode by @shibd in apache#944
- Add transactionCoordinatorClient by @liangyepianzhou in apache#953
- Support memory limit for the producer by @shibd in apache#955
- Support grouping ACK requests by time and size by @BewareMyPower in apache#957
- Support WaitForExclusive producer access mode by @shibd in apache#958
- Support Copper Argos in the Athenz auth provider by @massakam in apache#960
- Support auto-release idle connections by @RobertIndie in apache#963
- Support batch index ACK and set max number of messages in batch for the perf tool by @BewareMyPower in apache#967
- Support auto-scaled consumer receiver queue by @Gleiphir2769 in apache#976
- Implement transactionImpl by @liangyepianzhou in apache#984
- Expose the chunk config of the consumer to the reader by @CrazyCollin in apache#987
- Support consumer client memory limit by @Gleiphir2769 in apache#991
- Nack the message in dlqrouter when sending errors by @leizhiyuan in apache#592
- Fix TLS certificates that do not include IP SANS, save hostname before switching to a physical address by @dinghram in apache#812
- Fix the availablePermits leak that could cause the consumer stuck by @Gleiphir2769 in apache#835
- Read module version info from golang runtime by @pgier in apache#856
- Fix typo in
consumer.go
by @sekfung in apache#857 - Fix marshalling
time.Time{}
touint64
by @aymkhalil in apache#865 - Use the
DATA
constant as the prefix in OAuth2 KeyFileProvider by @Niennienzz in apache#866 - Fix bot cannot get the pr link by @RobertIndie in apache#868
- Fix PR template by @RobertIndie in apache#869
- Add go test flag '-v' for more clearly CI log by @Gleiphir2769 in apache#871
- Fix the dispatcher() stuck caused by availablePermitsCh by @Gleiphir2769 in apache#875
- Fix the Send() stuck caused by callback() not being called by @Gleiphir2769 in apache#880
- Fix the data race of ackReq.err by @Gleiphir2769 in apache#881
- Add data URL format to read the key file by @nodece in apache#883
- Prevent consumer panic on de-serializing message if schema not found by @GPrabhudas in apache#886
- Fix the conditions of loading TLS certificates by @nodece in apache#888
- Fix default retry and dlq topic name as per the doc by @ngoyal16 in apache#891
- Add NewMessageID() method by @crossoverJie in apache#893
- Use protocolbuffers instead of gogo by @nodece in apache#895
- Fix the compression broken when batching is disabled by @Gleiphir2769 in apache#902
- Add messageId and topic as props of DLQ message by @GPrabhudas in apache#907
- Update go version to 1.18 by @pgier in apache#911
- Move out the auth package from internal by @nodece in apache#914
- Remove the
clearMessageQueuesCh
inpartitionConsumer.dispatcher()
by @Gleiphir2769 in apache#921 - Remove the outdated interface description of
SeekByTime
by @Gleiphir2769 in apache#924 - Handle nil value message correctly in table-view by @Demogorgon314 in apache#930
- Migrate from the deprecated io/ioutil package by @reugn in apache#942
- Update the Cobra library to significantly reduce the dependency tree by @reugn in apache#943
- Remove go1.11 code leftovers by @reugn in apache#946
- Use pkg.go.dev badge in the readme by @reugn in apache#947
- Improve test script by @nodece in apache#951
- Optimize the performance by passing MessageID implementations by pointers by @BewareMyPower in apache#968
- Fix flaky Key_Shared subscription-related tests by @BewareMyPower in apache#970
- Refactor the toTrackingMessageID() by @Gleiphir2769 in apache#972
- Prevent RPC client panic on RPC response if
ProducerReady
is nil by @sekfung in apache#973 - Fix nack backoff policy logic by @wolfstudy in apache#974
- Fix license information for go-rate by @tisonkun in apache#975
- Fix the data race in checkAndCleanIdleConnections by @RobertIndie in apache#981
- Setup rate limiter for TestChunksEnqueueFailed to reduce flaky by @RobertIndie in apache#982
- Fix the message is blocked on the AckGroupingTracker.isDuplicate method by @shibd in apache#986
- Optimize batch index ACK performance by @BewareMyPower in apache#988
- Add more precise producer rate limiter by @Gleiphir2769 in apache#989
- Fix batched messages not ACKed correctly when batch index ACK is disabled by @BewareMyPower in apache#994
- Fix panic caused by retryAssert() by @Gleiphir2769 in apache#996
- @sekfung made their first contribution in apache#857
- @Gleiphir2769 made their first contribution in apache#835
- @michaeljmarshall made their first contribution in apache#861
- @aymkhalil made their first contribution in apache#865
- @RobertIndie made their first contribution in apache#868
- @dinghram made their first contribution in apache#812
- @labuladong made their first contribution in apache#889
- @Niennienzz made their first contribution in apache#866
- @crossoverJie made their first contribution in apache#893
- @ngoyal16 made their first contribution in apache#891
- @Demogorgon314 made their first contribution in apache#930
- @shibd made their first contribution in apache#944
- @liangyepianzhou made their first contribution in apache#953
- @tisonkun made their first contribution in apache#975
- @CrazyCollin made their first contribution in apache#987
[0.9.0] 2022-07-07
- Add TableView support, see PR-743
- Support ack response for Go SDK, see PR-776
- Add basic authentication, see PR-778
- Support multiple schema version for producer and consumer, see PR-611
- Add schema support to Reader, see PR-741
- Add consumer seek by time on partitioned topic, see PR-782
- Fix using closed connection in consumer, see PR-785
- Add go 1.18 to the test matrix, see PR-790
- Schema creation and validation functions without panic, see PR-794
- Fix ack request not set requestId when enable AckWithResponse option, see PR-780
- Fix nil pointer dereference in TopicNameWithoutPartitionPart, see PR-734
- Add error response for Ack func, see PR-775
- Fix sequenceID is not equal to cause the connection to be closed incorrectly, see PR-774
- Add consumer state check when request commands, see PR-772
- Fix panic caused by flushing current batch with an incorrect internal function, see PR-750
- Fix deadlock in Producer Send when message fails to encode, see PR-762
- Add
-c/--max-connections
parameter to pulsar-perf-go and set it to 1 by default, see PR-765 - Fix producer unable register when cnx closed, see PR-761
- Fix annotation typo in
consumer.go
, see PR-758 - Dlq producer on topic with schema, see PR-723
- Add service not ready check, see PR-757
- Fix ack timeout cause reconnect, see PR-756
- Cleanup topics after unit tests, see PR-755
- Allow config reader subscription name, see PR-754
- Exposing broker metadata, see PR-745
- Make go version consistent, see PR-751
- Temporarily point ci to pulsar 2.8.2, see PR-747
- Upgrade klauspost/compress to v1.14.4, see PR-740
- Stop ticker when create producer failed, see PR-730
- @NaraLuwan made their first contribution in apache#730
- @shubham1172 made their first contribution in apache#735
- @nicoloboschi made their first contribution in apache#738
- @ZiyaoWei made their first contribution in apache#741
- @nodece made their first contribution in apache#757
- @lhotari made their first contribution in apache#765
- @samuelhewitt made their first contribution in apache#762
- @shileiyu made their first contribution in apache#750
- @hantmac made their first contribution in apache#734
- @liushengzhong0927 made their first contribution in apache#780
- @oryx2 made their first contribution in apache#611
[0.8.1] 2022-03-08
- Upgrade beefsack/go-rate by @shubham1172 in apache#735
- Upgrade prometheus client to 1.11.1 by @nicoloboschi in apache#738
@shubham1172 made their first contribution in apache#735 @nicoloboschi made their first contribution in apache#738
[0.8.0] 2022-02-16
- Update release docs with missing information by @cckellogg in apache#656
- Update change log for 0.7.0 release by @cckellogg in apache#655
- Update version to 0.7.0 by @cckellogg in apache#654
- fix issue 650,different handle sequence value by @baomingyu in apache#651
- Support nack backoff policy for SDK by @wolfstudy in apache#660
- Remove unused dependency in
oauth2
module by @reugn in apache#661 - [Issue 662] Fix race in connection.go waitUntilReady() by @bschofield in apache#663
- Update dependencies by @reugn in apache#665
- [Issue 652] Quick fixes to the documentation for the main building blocks of the library by @reugn in apache#667
- Add subscription properties for ConsumerOptions by @wolfstudy in apache#671
- Add new bug-resistant build constraints by @reugn in apache#670
- Handle the parameters parsing error in NewProvider by @reugn in apache#673
- Update email template of release docs by @izumo27 in apache#674
- Add properties filed for batch container by @wolfstudy in apache#683
- [Issue 513] Correct apparent logic error in batchContainer's hasSpace() method by @bschofield in apache#678
- Upgrade DataDog/zstd to v1.5.0 by @dferstay in apache#690
- fix:add order key to message by @leizhiyuan in apache#688
- Set default go version to 1.13 in CI related files by @reugn in apache#692
- [Partition Consumer] Provide lock-free access to compression providers by @dferstay in apache#689
- Use a separate gorutine to handle the logic of reconnect by @wolfstudy in apache#691
- [DefaultRouter] add a parallel bench test by @dferstay in apache#693
- Revert "Use a separate gorutine to handle the logic of reconnect" by @wolfstudy in apache#700
- Fix data race while accessing connection in partitionProducer by @wolfstudy in apache#701
- Fix stuck when reconnect broker by @wolfstudy in apache#703
- Fix slice bounds out of range for readSingleMessage by @wolfstudy in apache#709
- Encryption failure test case fix by @GPrabhudas in apache#708
- [DefaultRouter] fix unnecessary system clock reads due to races accessing router state by @dferstay in apache#694
- Fix negative WaitGroup counter issue by @wolfstudy in apache#712
- [issue 675] oauth2 use golang-jwt address CVE-2020-26160 by @zzzming in apache#713
- readme: add note about how to build and test by @pgier in apache#714
- Bump oauth2 package version to the latest in master by @iorvd in apache#715
- Fix closed connection leak by @billowqiu in apache#716
- [Bugfix] producer runEventsLoop for reconnect early exit by @billowqiu in apache#721
- [issue 679][oauth2] Fix macos compiler warnings by @pgier in apache#719
- [optimize] Stop batchFlushTicker when Disable batching by @Shoothzj in apache#720
- Markdown error fix by @Shoothzj in apache#722
- @bschofield made their first contribution in apache#663
- @izumo27 made their first contribution in apache#674
- @pgier made their first contribution in apache#714
- @iorvd made their first contribution in apache#715
- @billowqiu made their first contribution in apache#716
[0.7.0] 2021-10-31
- Encryption support for producer, see PR-560
- Decrytion support for consumer, see PR-612
- User-defined metric cardinality, see PR-604
- Better support for Azure AD OAuth 2.0, see PR-630, PR-633, PR-634
- Removed testing for go versions 1.11 and 1.12, see PR-632
- Add epoch to create producer to prevent a duplicate producer when broker is not available., see [PR-582] (apache#582)
- Fix batch size limit validation, see PR-528
- Fix logic of command for sendError, see PR-622
- Drain connection requests channel without closing, see PR-645
- Fix ConsumersOpened counter not incremented when use multitopic or regexp consumer, see PR-619
- Fix reconnection logic when topic is deleted, see PR-627
- Fix panic when scale down partitions, see PR-601
- Fix missing metrics for topics by registration of existing collector, see PR-600
- Fix producer panic by oldProducers, see PR-598
- Fail pending messages when topic is terminated, see PR-588
- Fix handle send error panic, see PR-576
[0.6.0] 2021-07-21
- Make PartitionsAutoDiscoveryInterval configurable, see PR-514.
- Always check connection close channell, before attempting to put requests, see PR-521.
- Add
LedgerId,EntryId,BatchIdx,PartitionIdx
func for MessageId interface, see PR-529. - Add DisableReplication to Producer Message, see PR-543.
- Updating comments to conform to golang comment specification, see PR-532.
- Producer respects Context passed to Send() and SendAsync() when applying backpressure, see PR-534.
- Simplify connection close logic, see PR-559.
- Add open tracing to pulsar go client, see PR-518.
- Update proto file, see PR-562.
- Add send error logic for connection, see PR-566.
- Add license file for depend on libs, see PR-567.
- Update jwt-go dependency to resolve vulnerabilities, see PR-524.
- Fixed Athenz repository name, see PR-522.
- Fix reader latest position, see PR-525.
- Fix timeout guarantee for RequestOnCnx, see PR-492.
- Fix nil pointer error with GetPartitionedTopicMetadata, see PR-536.
- Release locks before calling producer consumer response callbacks, see PR-542.
- Fix lookup service not implemented GetTopicsOfNamespace, see PR-541.
- Regenerate the certs to work with Pulsar 2.8.0 and Java 11, see PR-548.
- Fix race condition when resend pendingItems, see PR-551.
- Fix data race while accessing connection in partitionConsumer, see PR-535.
- Fix channel data race, see PR-558.
- Fix write to closed channel panic() in internal/connection during connection close, see PR-539.
- Fix possible race condition in connection pool, see PR-561.
- Fix default connection timeout, see PR-563.
- Add lock for compressionProviders to fix data race problem, see PR-533.
- Fix send goroutine blocked, see PR-530.
[0.5.0] 2021-05-14
- Add http lookup service support, see PR-510.
- Support listener name for go the client, see PR-502.
- Add multiple hosts support, see PR-484.
- Improve error log for frame size too big and maxMessageSize, see PR-459.
- Update jwt-go version to v4, see PR-481.
- Fix range channel deadlock error, see PR-499.
- Add sentAt when put item into pendingQueue, see PR-509.
- Fix race condition/goroutine leak in partition discovery goroutine, see PR-474.
- Close cnxPool when closing a Client, see PR-494.
- Use newError to build return error, see PR-471.
- Move GetPartitionedTopicMetadata to lookup service, see PR-478.
- Fix wrong batch flush method bug, see PR-476.
- Fix reader with start latest message id inclusive, see PR-467.
- Fix unexpected nil pointer when reading item from keyring, see PR-470.
- Reverted datadog to DataDog, see PR-465.
[0.4.0] 2021-02-09
- Support send timeout in Producer side, see PR-394.
- Add metric for internal publish latency, see PR-397.
- Add key_based Batch logic, see PR-363.
- Add error label to publish errors metric, see PR-405.
- Add const client label to metrics, see PR-406.
- Attach topic and custom labels to Prometheus metrics, see PR-410.
- Add orderingKey apis, see PR-427.
- Support jwt and trusted cert for pulsar perf client, see PR-427.
- Fix bot action CI yaml file, see PR-395.
- Update go-keyring to v1.1.6 to remove warnings on MacOS Catalina+ , see PR-404.
- Read the clock fewer times during message routing, see PR-372.
- Close dangling autoDiscovery goroutine in consumer, see PR-411.
- Fix discard unacked messages, see PR-413.
- Fixed logic to attempt reconnections to same broker, see PR-414.
- Reduce the default TCP connection timeout from 30 to 5 seconds, see PR-415.
- Removed unused
import "C"
statement, see PR-416. - Renamed
Metrics.RpcRequestCount
toRPCRequestCount
to conform to style check, see PR-417. - Fix leaked nack tracker goroutine, see PR-418.
- Clearing message queues after seek requests, see PR-419.
- Fix retry policy not effective with partitioned topic, see PR-425.
- Deduplicate user provided topics before using them, see PR-426.
- The
reader.HasNext()
returns true on empty topic, see PR-441. - Upgrade
gogo/protobuf
to 1.3.2, see PR-446. - Fix
logrusWrapper
shrink interfaces slice into an interface, see PR-449. - Logging what really caused lookup failure, see PR-450.
- Make state thread safe in consumer_partition and connection, see PR-451.
- Fix
KeyFileTypeServiceAccount
not found compile error, see PR-455. - Fix unsubscribe blocked when consumer is closing or has closed, see PR-457.
- The asynchronized send timeout checking without pending queue lock, see PR-460.
[0.3.0] 2020-11-11
- Support retry letter topic in Go client, see PR-359.
- Support limit the retry number of reconnectToBroker, see PR-360.
- Support key shared policy in Go client, see PR-363.
- Add schema logic in producer and consumer, see PR-368.
- Fix panic on receiverQueueSize set to
-1
, see PR-361. - Fix may lead to panic test case, see PR-369.
- Send delay message individually even batching is enabled, see PR-372.
- Fixed buffer resize when writing request on connection, see PR-374.
- Fixed deadlock in DLQ ack processing, see PR-375.
- Fix deadlock when connection closed, see PR-376.
- Fix producer deadlock after write failure, see PR-378.
- Fix maxMessageSize not effective even if aligned with broker, see PR-381.
- Update default router to switch partition on all batching thresholds, see PR-383.
- Replaced
github.com/DataDog/zstd
withgithub.com/datadog/zstd
, see PR-385. - Fix retry policy not effective with non-FQDN topics, see PR-386.
[0.2.0] 2020-08-28
- Expose BatchingMaxSize from ProducerOptions, see PR-280.
- Allow applications to configure the compression level, see PR-290.
- Support producer name for Message, see PR-299.
- Support oauth2 authentication for pulsar-client-go, see PR-313.
- Add interceptor feature for Go client, see PR-314.
- Export client metrics to Prometheus, see PR-317.
- Add Name method to Consumer interface, see PR-321.
- Add oauth2 to the provider, see PR-338.
- Support specified the oauth2 private key with prefix
file://
anddata://
, see PR-343. - Fix the keyfile unmarshal error, see PR-339.
- Add a new method to create auth provider from tls cert supplier, see PR-347.
- Add seek logic for reader, see PR-356.
- Use .asf.yaml to configure github repo, see PR-216.
- Auto update the client to handle changes in number of partitions, see PR-221.
- Clean callbacks of connection after run loop stopped, see PR-248.
- Fix unable to close consumer after unsubscribe in Shared Subscription, see PR-283.
- Introduced lifecycle for compression providers, see PR-284.
- Use maxPendingMessages for sizing producer eventsChan, see PR-285.
- Avoid contention on producer mutex on critical path, see PR-286.
- Switched to DataDog zstd wrapper, reusing the compression ctx, see PR-287.
- Fix panic when creating consumer with ReceiverQueueSize set to -1, see PR-289.
- Used pooled buffering for compression and batch serialization, see PR-292.
- Use gogofast to have in-place protobuf serialization, see PR-294.
- Added semaphore implementation with lower contention, see PR-298.
- Fixed pooled buffer lifecycle, see PR-300.
- Removed blocking queue iterator, see PR-301.
- Fix panic in CreateReader API using custom MessageID for ReaderOptions, see PR-305.
- Change connection failed warn log to error and print error message, see PR-309.
- Share buffer pool across all partitions, see PR-310.
- Add rerun feature test command to repo, see PR-311.
- Fix CompressMaxSize() for ZLib provider, see PR-312.
- Reduce the size of the MessageID structs by one word on 64-bit arch, see PR-316.
- Do not allocate MessageIDs on the heap, see PR-319.
- Different MessageID implementations for message Production and Consumption, see PR-324.
- Fix producer block when the producer with the same id, see PR-326.
- Get the last message when LatestMessageID and inclusive, see PR-329.
- Fix go.mod issue with invalid version, see PR-330.
- Fix producer goroutine leak, see PR-331.
- Fix producer state by reconnecting when receiving unexpected receipts, see PR-336.
- Avoid producer deadlock on connection closing, see PR-337.
Our thanks go to the following contributors from the community for helping this release:
[0.1.1] 2020-06-19
- Fixed batching flag logic
- Fix data race when accessing partition producer state
- Fixed tls connection issue
- Add flag to disable forced topic creation
- Add Athenz authentication provider
- Fixed race condition in producer Flush() operation
- Removed unnecessary flush in sync Send() operation
- Allow empty payload for nonbatch message
- Add internal connectionReader readAtLeast error information
- Fix zstd memory leak of zstdProvider
- Expose replicated from filed on message struct
- Fix send async comments
- Fix perf-produce cannot be closed
- Fix perf-producer target
- Fix fail to add batchbuilder
- skip debug print out when batch disabled with no messages
- Add check for max message size
- Build and test with multiple versions of Go
- When CGO is enabled, use C version of ZStd
- Stop partition discovery on Close
- Microbenchmark for compression
- Allow to have multiple connections per broker
- Increase writeRequestsCh channel buffer size
Our thanks go to the following contributors from the community for helping this release:
- yarthur1
- vergnes
- sijie
- shustsud
- rueian
- mileschao
- keithnull
- abatilo
- cornelk
- equanz
- jerrypeng
- jonyhy96
[0.1.0] 2020-03-24
- Support
TLS
logic - Support
Authentication
logic - Support
Proxy
logic - Support
Hostname verification
logic
- Add
Send()
method inProducer
interface - Add
SendAsync()
method inProducer
interface - Add
LastSequenceID()
method inProducer
interface - Add
Flush()
method inProducer
interface - Add
Close()
method inProducer
interface - Add
Topic()
method inProducer
interface - Add
Name()
method inProducer
interface - Support
MessageRouter
logic - Support
batch
logic - Support
compression message
logic - Support
HashingScheme
logic - Support
User defined properties producer
logic
- Add
Subscription()
method inConsumer
interface - Add
Unsubscribe()
method inConsumer
interface - Add
Receive()
method inConsumer
interface - Add
Ack()
method inConsumer
interface - Add
AckID()
method inConsumer
interface - Add
Nack()
method inConsumer
interface - Add
NackID()
method inConsumer
interface - Add
Seek()
method inConsumer
interface - Add
SeekByTime()
method inConsumer
interface - Add
Close()
method inConsumer
interface - Support
Dead Letter Queue
consumer policy - Support
Topics Pattern
andTopics
logic - Support
topic consumer regx
logic - Support
multi topics consumer
logic - Support
Exclusive
,Failover
,Shared
andKeyShared
subscribe type logic - Support
Latest
andEarliest
logic - Support
ReadCompacted
logic - Support
ReplicateSubscriptionState
logic - Support
User defined properties consumer
logic - Support
Delayed Delivery Messages
logic
- Add
Topic()
method inReader
interface - Add
Next()
method inReader
interface - Add
HasNext()
method inReader
interface - Add
Close()
method inReader
interface - Support
read compacted
logic - Support
start messageID
logic - Support
User defined properties reader
logic
Our thanks go to the following contributors from the community for helping this release: