Releases: valkey-io/valkey-glide
v2.4.1
What's Changed
- Backport #5916 to release 2.4: Core: Propagate per-command response timeout to multiplexed connection by @jeremyprime in #5991
- Backport of #5917 to release 2.4: Core: Add dedicated timeout watchdog thread independent of Tokio runtime by @jeremyprime in #5993
- Cherry-pick of #5952 to release 2.4: Java: Add a synchronous check on inflight request limits before submitting tasks by @jeremyprime in #5992
- Cherry pick #6015 to release-2.4: Python: Include _fast_response extension in glide-sync wheel by @xShinnRyuu in #6020
- Implement connection refresh on circular moved (#5893) by @jamesx-improving in #6023
Full Changelog: v2.4.0...v2.4.1
v2.4.0
Key Features
Client-Side Caching Support: Full client-side caching support enabling local caching of frequently accessed data to reduce round-trips to the server
Transparent Compression: Client-side transparent compression feature enabled. This feature is experimental
Valkey Search 1.2 Support: Comprehensive FT.* command support for the Valkey Search module
NodeDiscoveryMode for Standalone Clients: New configuration option to allow for better integration with proxies
JSON module support: Full support for Valkey JSON module
URI-Based Client Creation API: New FFI create_client_from_uri function accepting Redis/Valkey URI strings with optional JSON configuration
Performance Enhancements: Multiple performance enhancements in the Valkey Glide Core
What's Changed
- feat(java): add cluster info & topology commands by @prashanna-frsh in #5433
- feat(jedis-compatibility):add support for connection and tx commands by @prashanna-frsh in #5422
- Bump redis.clients:jedis from 5.1.2 to 7.0.0 in /java by @dependabot[bot] in #4916
- Fixed PermissionDenied error to fail fast by @Aryex in #5515
- feat(python-sync): enable zero-copy SET by accepting bytearray and memoryview in command args by @omerrubi-amzn in #5492
- feat(python-sync): add response buffer support to get() to improve performance by reducing copies by @omerrubi-amzn in #5493
- feat(core): Add OTel DB semantic convention attributes to command spans by @naoki-tateyama in #5413
- Updated attribution files for commit 8f8c3f7 by @github-actions[bot] in #5523
- Python: Recycle callback indices for cancelled futures and use monotonic counter to prevent index collisions that permanently closed the client by @xShinnRyuu in #5517
- Java: Fix swallowed errors in JNI async bridge that left CompletableFutures dangling by @avifenesh in #5536
- Go bug fix: remove pubsub config check for message handler register by @liorsve in #5534
- Node: add dynamic PubSub support by @affonsov in #5295
- Fix/go/python cicd test-container tests by @xShinnRyuu in #5560
- CI: add note to avoid using GitHub runners for macOS ARM workflows by @liorsve in #5570
- Fix Potential Security Issues for Release 2.3 by @alexr-bq in #5583
- refactor(java): rename unsubscribe methods to lazy variants by @yeoncheol-jang in #5532
- Add IAM authentication tests across all clients by @affonsov in #5402
- Refactor go pubsub tests to support cluster by @alexr-bq in #5577
- Pypi-CD: fix test-the-release step for linux-arm ephemeral runner by @liorsve in #5566
- Fix sleep usage to be compatible with trio backend by @alexr-bq in #5612
- Fix python pubsub test by @alexr-bq in #5615
- Address issues with tests in CI by @alexr-bq in #5625
- Cherry-pick release 2.3 JAVA/IAM changes to main by @affonsov in #5630
- Update CHANGELOG.md after release of 2.3 by @xShinnRyuu in #5636
- fix(java): optimize convertMapToKeyValueStringArray by @yeoncheol-jang in #5603
- Fix: Prevent zombie sub-command accumulation causing event loop starvation by @avifenesh in #5632
- fix(java): fix thread safety issue in NativeClusterScanCursor by @yeoncheol-jang in #5528
- Core: Avoid cloning compression manager if not enabled by @jeremyprime in #5644
- Node: Implement transparent compression feature by @prateek-kumar-improving in #5648
- Java: Implement transparent compression feature by @prateek-kumar-improving in #5647
- Core: Add IAM token cache support for cluster reconnections by @affonsov in #5663
- Core: Maintain throughput during cluster failover by @jeremyprime in #5399
- Update supported compression commands by @alexr-bq in #5420
- fix(core): eliminate Tokio runtime blocking in cluster async by @jeremyprime in #5451
- Fix flaky Rust core tests due to checking client id by @Aryex in #5667
- feat(test): Improve DNS and IP address tests consistency by @currantw in #5513
- Go: Add JSON.SET and JSON.GET commands by @prateek-kumar-improving in #5662
- Updated attribution files for commit 745946b by @github-actions[bot] in #5552
- perf(java): replace stream+flatMap with pre-sized for-loop in ArrayTransformUtils by @ajzach in #5631
- fix(python,java,node,rust): add missing vector search 1.1 args by @edlng in #5550
- Go: add JSON - DEL, FORGET, CLEAR, MGET, TYPE, and array commands by @prateek-kumar-improving in #5691
- sentinel read-only commands by @Redoubts in #5608
- FFI: Add OTel DB semantic convention attributes for Go and Python Sync by @naoki-tateyama in #5579
- GO: Add JSON TOGGLE, RESP, DEBUG, numeric, string and object commands by @prateek-kumar-improving in #5711
- [Core] Fixed flaky tests: pipeline_can_reconnect and pipeline_reconnect_after_kill_all_connections by @Aryex in #5707
- feat(python, java, node): Add Valkey Search 1.2 arguments to
FT.*commands by @edlng in #5571 - test: fix cluster cleanup to handle TLS cluster prefixes by @affonsov in #5650
- Python: Downgrade protobuf dependency to >=3.20 by @liorsve in #5655
- ALL_NODES support by @alexr-bq in #5216
- Enabling support to create connection requests from uris directly by @pratheep-kumar in #5620
- Fix broken Valkey GLIDE documentation link checker by @Aryex in #5734
- Fix false error logs in cluster_manager.py when stopping already-dead servers by @jeremyprime in #5726
- Exempt transitive rand 0.8.5 in deny.toml by @jeremyprime in #5739
- Python: perf - optimize sync thread handling and response parsing by @jduo in #5635
- Updated attribution files for commit 8e6040d by @github-actions[bot] in #5696
- feat(Java): Task/add cluster slot commands by @prashanna-frsh in #5434
- Fix lint errors due to new Rust version by @jeremyprime in #5761
- feat(go): Add Valkey Search Support by @edlng in #5590
- Allow ORT updates commits from github-actions[bot] to be signed by @xShinnRyuu in #5744
- feat(jedis-compatibility): add pub sub commands jedis layer by @prashanna-frsh in #5286
- CI: Switch Modules Test to Self-hosted Valkey Bundle Server by @edlng in #5661
- build(deps): update ctor requirement from 0.5 to 0.10 in /glide-core by @dependabot[bot] in #5738
- build(deps): bump the patch-updates group across 1 directory with 2 updates by @dependabot[bot] in #5736
- Bump eslint-plugin-jsdoc from 57.2.1 to 62.5.5 by @dependabot[bot] in #5374
- build(deps): update criterion requirement from ^0.6 to ^0.8 in /glide-core by @dependabot[bot] in #5671
- Bump the minor-updates group across 1 directory with 2 updates by @dependabot[bot] in #5088
- Bump isort from 6.0.1 to 6.1.0 in /python by @dependabot[bot] in #4978
- feat(java): Add support for cluster management and node management commands by @prashanna-frsh in #5503
- Add context manager support to clients by @Redoubts in https://git...
v2.2.10
What's Changed
- Fix to allow auto-detect npm tag to handle RC and backport releases by @xShinnRyuu in #5669
- Fix/add --skip-existing to twine upload for sync client PyPI publish by @xShinnRyuu in #5670
- Cherry-pick/Pypi-CD: fix test-the-release step for linux-arm ephemera… by @xShinnRyuu in #5685
- Updated attribution files for commit 1d8a599 by @github-actions[bot] in #5652
- Updated attribution files for commit 6769247 by @github-actions[bot] in #5695
- Updated attribution files for commit 4c8f6bc by @github-actions[bot] in #5709
- Updated attribution files for commit 02e1d94 by @github-actions[bot] in #5718
- Updated attribution files for commit c973d8d by @github-actions[bot] in #5723
- feat: add diagnostic logging for failover, topology refresh, and pipeline issues by @jduo in #5756
- Cherry-pick/Allow ORT updates commits from github-actions[bot] to be signed #5744 by @xShinnRyuu in #5766
- Scope Sonatype deployment repo to io.valkey group by @jeremyprime in #5770
- Updated attribution files for commit 638ebbe by @github-actions[bot] in #5748
- Wait for artifact test deployment by @jeremyprime in #5784
- Correct URL for artifact wait by @jeremyprime in #5785
- Misc upgrades to Java deployment workflow by @xShinnRyuu in #5786
- fix(glide-core,java): rate-limit high-frequency diagnostic logs during failover by @jduo in #5791
- Updated attribution files for commit bc8ed8a by @github-actions[bot] in #5801
- Core: trigger topology check on ConnectionNotFoundForRoute in fanout operations (cherry-pick to release-2.2) by @shohamazon in #5836
- Updated attribution files for commit 5fee413 by @github-actions[bot] in #5816
- Updated attribution files for commit 2832184 by @github-actions[bot] in #5848
- fix(glide-core): fall back to existing connections when initial nodes are unavailable during toplogy refresh by @jduo in #5814
Full Changelog: v2.2.9...v2.2.10
v2.3.1
What's Changed
- Address issues with tests in CI (#5625) by @alexr-bq in #5629
- Updated attribution files for commit 180f388 by @github-actions[bot] in #5594
- Cherry-pick: Update approved license for aws-lc-sys:0.39.0 (#5645) by @xShinnRyuu in #5646
- feat(core): Add OTel DB semantic convention attributes to command spans by @jduo in #5680
- Fix: Prevent zombie sub-command accumulation causing event loop starvation by @jduo in #5681
- Java: Fix swallowed errors in JNI async bridge that left CompletableFutures dangling by @jduo in #5683
- Core: Add IAM token cache support for cluster reconnections (#5663) by @affonsov & @jamesx-improving in #5679
Full Changelog: v2.3.0...v2.3.1
v2.2.9 (Java only)
What's Changed
- Backport: Fix swallowed errors in JNI async bridge (#5536) by @avifenesh in #5664
- Backport: Security hardening — shutdown race + registry leak (#5583) by @avifenesh in #5665
Full Changelog: v2.2.8...v2.2.9
v2.2.9 (Go, Node, and Python)
What's Changed
- [Backport-2.2] Fix/empty hostname cluster slots#5373 by @jamesx-improving in #5397
- Diagnostic build for customer debug (based on release-2.2) by @shohamazon in #5568
- Revert "Diagnostic build for customer debug (based on release-2.2)" by @shohamazon in #5641
- Update approved license for aws-lc-sys:0.39.0 by @xShinnRyuu in #5645
- cherry-pick: Prevent zombie sub-command accumulation with InflightTracker (#5632) by @shohamazon in #5642
- fix(java): remove Java-side inflight counter, let Rust be sole authority by @avifenesh in #5656
- fix(java): update inflight_requests_limit test for async Rust rejection by @avifenesh in #5658
- Revert Java inflight counter changes — keep Rust-only fix by @avifenesh in #5660
- Backport: Fix swallowed errors in JNI async bridge (#5536) by @avifenesh in #5664
- Backport: Security hardening — shutdown race + registry leak (#5583) by @avifenesh in #5665
Full Changelog: v2.2.7...v2.2.9
v2.2.8 (Java only)
What's Changed
- [Backport-2.2] Fix/empty hostname cluster slots#5373 by @jamesx-improving in #5397
- Diagnostic build for customer debug (based on release-2.2) by @shohamazon in #5568
- Revert "Diagnostic build for customer debug (based on release-2.2)" by @shohamazon in #5641
- Update approved license for aws-lc-sys:0.39.0 by @xShinnRyuu in #5645
- cherry-pick: Prevent zombie sub-command accumulation with InflightTracker (#5632) by @shohamazon in #5642
- fix(java): remove Java-side inflight counter, let Rust be sole authority by @avifenesh in #5656
- fix(java): update inflight_requests_limit test for async Rust rejection by @avifenesh in #5658
- Revert Java inflight counter changes — keep Rust-only fix by @avifenesh in #5660
Full Changelog: v2.2.7...v2.2.8
v2.3.0
🚀 Key Features
Dynamic PubSub Support: Added dynamic PubSub methods across all clients (Node, Java, Python Sync, Go) including subscribe, unsubscribe, psubscribe, punsubscribe, ssubscribe, sunsubscribe with timeout support, getSubscriptions() for subscription state tracking, and pubsub_reconciliation_interval configuration.
mTLS Support: Added client certificate and private key support for mutual TLS (mTLS) authentication across Core and Python clients.
Java 8 Compatibility: Made the Java client compatible with Java 8, expanding support for legacy environments.
Java Uber JAR: Added uber JAR support for multi-platform builds, simplifying deployment across different architectures.
Read-Only Mode: Added read-only flag support in Core, enforcing no write commands and allowing connections without a primary node.
Go ACL Commands: Added comprehensive ACL server management commands (ACL CAT, ACL DELUSER, ACL DRYRUN, ACL GENPASS, ACL GETUSER, ACL LIST, ACL LOAD, ACL LOG, ACL LOGRESET, ACL SAVE, ACL SETUSER, ACL USERS, ACL WHOAMI).
Go Cluster Management: Added CLUSTER management commands (CLUSTER INFO, CLUSTER NODES, CLUSTER SHARDS, CLUSTER SLOTS, CLUSTER KEYSLOT, CLUSTER MYID, CLUSTER MYSHARDID, CLUSTER GETKEYSINSLOT, CLUSTER COUNTKEYSINSLOT, CLUSTER LINKS).
Node OpenTelemetry Enhancement: Added parent span context propagation support for OpenTelemetry integration.
Python Sync Performance: Added support for bytearray and memoryview as command argument types and response buffer support for get() to reduce memory copies and improve performance.
Python Sync OpenTelemetry: Added OpenTelemetry support with traces and metrics configuration for the sync client.
Java New Commands: Added EVAL_RO, EVALSHA_RO, SCRIPT DEBUG, KEYS, MIGRATE, WAITAOF, and comprehensive ACL commands.
🎉 New Contributors
- @jhpung made their first contribution in #2558
- @niharikabhavaraju made their first contribution in #2738
- @EdricCua made their first contribution in #2756
- @Angraybill made their first contribution in #2933
- @omangesg made their first contribution in #3199
- @rueian made their first contribution in #3208
- @0xkc0de made their first contribution in #3380
- @fenichelar made their first contribution in #3489
- @X39 made their first contribution in #3362
- @goller made their first contribution in #3548
- @amirreza-sf80 made their first contribution in #3558
- @Juneezee made their first contribution in #3648
- @mortymacs made their first contribution in #3760
- @thearchitector made their first contribution in #3465
- @meitalkra made their first contribution in #3949
- @mthemis-provenir made their first contribution in #3386
- @SergioNR made their first contribution in #3982
- @marcoreni made their first contribution in #4046
- @Copilot made their first contribution in #4262
- @gulbaki made their first contribution in #4368
- @mohsen-alizadeh made their first contribution in #4472
- @ljmcg made their first contribution in #4478
- @omida-bitquill made their first contribution in #4509
- @Funk66 made their first contribution in #4367
- @leszek-bq made their first contribution in #4656
- @manz made their first contribution in #4873
- @hank95179 made their first contribution in #4888
- @jh1231223 made their first contribution in #4880
- @xdk-amz made their first contribution in #4967
- @currantw made their first contribution in #4983
- @Sasidharan3094 made their first contribution in #5004
- @pratheep-kumar made their first contribution in #5010
- @louwers made their first contribution in #5014
- @invokermain made their first contribution in #5080
- @v3rm0n made their first contribution in #5047
- @oxy-star made their first contribution in #5093
- @alexpota made their first contribution in #5111
- @tdschwarz made their first contribution in #5071
- @Sylvain-Royer made their first contribution in #5104
- @Kaushik-Vijayakumar made their first contribution in #5241
- @NeoPhi made their first contribution in #5373
- @rzoutm made their first contribution in #5129
Full Changelog: v1.2.0...v2.3.0
Thanks to everyone who contributed to this release!
@xShinnRyuu, @affonsov, @alex-rehnby-martin, @jduo, @avifenesh, @prashanna-freshworks, @jamesx-improving, @Sasidharan3094, @taylor-curran, @shohamazon, @hank95179, @Aryex, @liorsve, @pratheepkumar, @xdk-amz, @prateek-kumar-improving, @oxy-star, @Maayanshani25, @KaushikVijayakumar, @tdschwarz, @rzoutm, @naoki-tateyama, @yipin-chen, @invokermain, @Sylvain-Royer, @v3rm0n, @jh1231223, @jeremyprime, @danielr, @louwersj, @a-potapenko-g
v2.2.7
What's Changed
- Core: improve topology refresh reliability and handle ReadOnly errors by @shohamazon in #5225
- Java: add topology periodic checks config by @shohamazon in #5229
- Cherry pick: Java timeouts & perf optimization by @shohamazon in #5291
- revert 2.2.7-rc2 changes and update changelog by @shohamazon in #5326
Full Changelog: v2.2.6...v2.2.7
v2.2.6
What's Changed
- Cherry-picked into release-2.2 by @shohamazon in #5185
Full Changelog: v2.2.5...v2.2.6