- Java: Add uber JAR support for multi-platform builds (5484)
- JAVA: Add EVAL_RO, EVALSHA_RO, and SCRIPT DEBUG commands (#5125)
- CORE: Add client certificate and private key support for mTLS (#5092)
- Python: Add client certificate and private key support for mTLS (5123)
- JAVA: Add KEYS, MIGRATE and WAITAOF command support (#5017)
- Python Sync: Add dynamic PubSub methods (subscribe, psubscribe, unsubscribe, punsubscribe, ssubscribe, sunsubscribe with timeout support), get_subscriptions(), and pubsub_reconciliation_interval configuration support. Unified configuration classes with async client by importing from glide_shared (#5270)
- Go: Add dynamic PubSub methods (Subscribe, PSubscribe, SSubscribe, Unsubscribe, PUnsubscribe, SUnsubscribe with blocking variants and timeout support), GetSubscriptions(), and helper functions (UnsubscribeAll, PUnsubscribeAll, SUnsubscribeAll). Export pubsub constants (AllChannels, AllPatterns, AllShardedChannels)
- JAVA: Add ACL server management commands (ACL CAT, ACL DELUSER, ACL DRYRUN, ACL GENPASS, ACL GETUSER, ACL LIST, ACL LOAD, ACL LOG, ACL SAVE, ACL SETUSER, ACL USERS, ACL WHOAMI)
- Go: Add 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)
- CORE: Fix typo in ACL SETUSER command mapping (AclSetSser → AclSetUser)
- Python: Add inflight request limit support to sync client
- Python Sync: Add OpenTelemetry support with traces and metrics configuration
- Python: Move OpenTelemetry config classes to glide_shared for code reuse between async and sync clients
- JAVA: Add dynamic PubSub methods (subscribe, psubscribe, unsubscribe, punsubscribe, ssubscribe, sunsubscribe), getSubscriptions() for subscription state tracking, pubsubReconciliationIntervalMs configuration option, and subscription_out_of_sync_count and subscription_last_sync_timestamp metrics (#5267)
- Go: Add ALLOW_NON_COVERED_SLOTS flag support for cluster scan (#4895)
- CORE: Track HELLO and AUTH state for reconnection (#5145)
- CORE: Add support for ZRANGEBYLEX, ZRANGEBYSCORE, ZREVRANGE, ZREVRANGEBYLEX, and ZREVRANGEBYSCORE commands in request_type (#5379)
- Go: Add CLUSTER management commands (CLUSTER INFO, CLUSTER NODES, CLUSTER SHARDS, CLUSTER KEYSLOT, CLUSTER MYID, CLUSTER MYSHARDID, CLUSTER GETKEYSINSLOT, CLUSTER COUNTKEYSINSLOT, CLUSTER LINKS) (#5206)
- Java: Make client java 8 compatible
- Node: Add OpenTelemetry parent span context propagation support (#4655)
- JAVA: Add cluster information and topology commands (CLUSTER INFO, CLUSTER NODES, CLUSTER SHARDS, CLUSTER LINKS, CLUSTER MYID, CLUSTER MYSHARDID) with batch support (#5106)
- CORE: Add read only flag, enforcing no write commands and allowing for connecting without a primary (#5411)
- Python Sync: Accept
bytearrayandmemoryviewas command argument types to improve performance by reducing copies (#5492) - Python Sync: Add response buffer support to get() to improve performance by reducing copies (#5493)
- CORE: Fix empty hostname in CLUSTER SLOTS metadata causing AllConnectionsUnavailable (#5367). AWS ElastiCache (plaintext, cluster mode) returns
hostname: ""in node metadata, which was used as the connection address instead of falling back to the IP. - Node: Fix to handle non-string types in toBuffersArray (#4842)
- CORE: Enforce connection_timeout for initial standalone connection failures (#4991)
- Node: Fixed
Failed to convert napi value Undefined into rust type u32error (#5128) - Python: Fix Sphinx docs build failure with duplicate object warnings (#5163)
- Java: Restore shading and relocation of protobuf (#5031)
- CORE: Remove DEFAULT_CLIENT_CREATION_TIMEOUT and honor user-provided connection timeout by centralizing timeout logic in ConnectionRequest (#5183)
- Java: Fix mget large binary data issue and add test case (#5341)
- Java: Fix resource leak in integration tests where clients created via @MethodSource were never closed (#5347)
- Java: Fix hanging issue in AWS Lambda when response exceeds 16KB (#5081)
- Core: Fixed a bug where permission errors for CLUSTER SLOTS command is not surfaced during initial connection (#5486)
- Core: Move credential fetching to token generation time (#5508)
- Docs: Add missing references to windows-x86_64 classifier (#5028)
- CI: Upgrade ORT from 46.0.0 to 59.0.0 to fix Synopsys repository 403 error (#5169)
- Java: Enable Windows integration test in workflow through WSL(#5112)
- All Clients: Add TCPNoDelay option (#5100)
- Node: Fix
Failed to convert napi value Undefined into rust type u32error (#5128)
- Rust: Rust 2024 compatibility fix (#5101)
- CI: Update NPM CD with Trusted Publishing (#5110)
- Rust: Add RUSTSEC-2025-0141 to ignore list in deny.toml (#5137)
- JAVA: Unshadow Apache Commons Lang3 to avoid failures due to dependency conflicts (#5074)
- CORE: Rust Lint is failing due to unmaintained advisory detected (RUSTSEC-2025-0141) (#5136)
- JAVA: Update Apache Commons Lang3 from 3.13.0 to 3.20.0 to address CVE-2025-48924 (#5049)
- JAVA: Add protobuf shading to prevent version conflicts with user dependencies (#5031)
- JAVA: Fix classloader issues in JNI method caching (#5029)
- PYTHON: Update sniffio dependency (#5044)
- JAVA: Windows Java binaries are now available (#5049)
- Added in documentation to how to use Lua scripts with Glide
- JAVA: Add refreshTopologyFromInitialNodes Configuration Option (#4870)
- GO: add RefreshTopologyFromInitialNodes configuration option (#4871)
- Node: add refreshTopologyFromInitialNodes configuration option (#4872)
- PYTHON: Add IAM authentication support with manual token refresh (#4890)
- JAVA: Add IAM authentication support for ElastiCache/MemoryDB (#4891)
- FFI/GO: Add IAM authentication support with automatic token refresh (#4892)
- GO: Add TLS Custom Root Certificate Support for Go Client (#4921)
- GO: Enable
go mod vendorsupport via CI-generated marker files (#4721) - Python: Add Custom Root Certificate Support for Python TLS Connections (#4930)
- Python: Add Python 3.14 support (#4897)
- JAVA: Implement TLS support for Java client (#4905)
- Node: Implement TLS support for Node client (#4911)
- Node: Resolved circular import dependency between
BaseClient.ts,GlideClient.ts, andGlideClusterClient.ts.(#4607) - JAVA: Add Windows support and prevent double-loading in NativeUtils library loader
- JAVA: Add cross-platform compatibility fixes for builds and tests - UTF-8 encoding, platform-native line endings, and system temp directory usage
- Java: Make shutdown hook optional (#4935)
- Core/Java/Node: Fix default connection timeout value for clients (#4966)
- JAVA: Fix java applications from hanging after logic completion (#4984)
- JAVA: Fix Gradle toolchain provisioning conflicts on Windows self-hosted runners
- Rust: Updates the
install-rust-and-protocaction to explicitly include therustfmtandclippycomponents. (#4816)
- Node: Move SELECT command from GlideClient to BaseClient (#4849)
- JAVA: Add SELECT command support for cluster mode (#4846)
- Go: Add Select command support for ClusterClient (#4850)
- PYTHON: Move SELECT command from StandaloneCommands to CoreCommands(#4851)
- PYTHON: Consolidate COPY command implementation to CoreCommands (#4806)
- NODE: move COPY command to BaseClient and add comprehensive tests(#4805)
- GO: Add DBDestination option tests to CopyWithOptions command (#4802)
- JAVA: Move COPY command with database ID from standalone to base client (#4804)
- GO: Add cluster support for Move command (#4748)
- NODE: add MOVE command support for cluster clients (#4750)
- PYTHON: Add MOVE command support for cluster clients (#4751)
- JAVA: Add cluster support for Move command ([#4749])(valkey-io#4749)
- CORE: Fix SELECT Command Database Persistence Across Reconnections (#4764)
- Rust: Updates the
install-rust-and-protocaction to explicitly include therustfmtandclippycomponents. (#4816) - CORE: Persist Client Name Across Reconnections for CLIENT SETNAME Command. (#4841)
- GO: Hash Field Expiration commands for Valkey 9 (#4554)
- JAVA: Valkey 9 new commands HASH items expiration (#4556)
- NODE: Valkey 9 support - Add Hash Field Expiration Commands Support (#4598)
- Python: Valkey 9 new hash field expiration commands (#4610)
- Node: Add Multi-Database Support for Cluster Mode (Valkey 9.0) (#4657)
- Java: Multi-Database Support for Cluster Mode Valkey 9.0 (#4658)
- Go: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4660)
- Python: Add Multi-Database Support for Cluster Mode Valkey 9.0 (#4659)
- Java: Add lazy connection support to Java module (#4350)
- Go: Add lazy connection support (#4374)
- Java/Go/Node/Python: Fixed LOLWUT tests and Jedis compatibility layer tests for Valkey 9 (#4632)
- Core/Python: fix 100% CPU when blocking command returning data after client closure (#4612)
- Java: Add MUSL build to support Alpine Linux (#4073)
- Core/FFI/Go: Fix memory leak in FFI layer (#4395)
- Java: fix addReturnField method in FT module ([#4084]valkey-io#4084)
- Python: Create openTelemetry span to measure command latency (#3985)
- Go: Add client name and version identifiers (#3903)
- Python: Add support for Trio (#3465)
- Core: Add an OK response type to FFI (#3630)
- Core: Move UDS Socket Filename to tmp (#3615)
- Node: Added build improvements for rust release (#3606)
- Core: Ensure UDS socket filename is truly unique. (#3596)
- Python: Add Batch support (#3555)
- Node: Fix type declarations (#3489)
- Core: Add
opentelemetryprotocols support (#3191) - Node: Make the request sampling percentage configurable, and create spans conditionally based on it (#3830)
- Core/Node: Make OpenTelemetry config to be global per process (#3771)
- Core/Node: Create openTelemetry span to measure command latency (#3391)
- Core: Add
opentelemetrymetrics support (#3466) - Core: Add
opentelemetrymoved, retry attemps counters and set_status (#3944) - Node: Fix ZADD, enabling
+infand-infas score (#3370) - Go: Add JSON.SET and JSON.GET (#3115)
- Csharp: updating xUnit, adding xUnit analyser rules and guidelines (#3035)
- Go: Add ZRangeStore (3105)
- Go: Add
ZUNION(#3119) - Go: Add
ZUNIONSTORE(#3136) - Go: Add
XINFO CONSUMERS(#3120) - Go: Add
XINFO GROUPS(#3106) - Go: Add
ZInterCard(#3078) - Go: Add
ZLEXCOUNT(#3140) - Go: Updating examples for
ZInterCard(#3232) - Go: Fix channel passing from Go to Rust by using
runtime.Pinnerorcgo.Handle(#3208) - Go: Add
BZPOPMAXandZMPOP#3257 - Go: Fix data race on the coreClient with
sync.Mutexand a channel map (#3236) - Go: Adding support for Az Affinity (#3235)
- Go: Adding support for advanced client configs and connectionTimeout (#3290)
- Go: Add Cluster Scan support (#3295)
- Go: Fix unsafe precondition violation for the slice::from_raw_parts (#3350)
- Go: Add
GeoAddand the Geospatial interface (#3366) - Go: Add
LOLWUT(#3355) - Go: Add
BITPOS(#3407) - Go: Add
FLUSHALL(#3117) - Go: Add
FLUSHDB(#3117) - Go: Add
PFMERGE(#3082) - Go: Add password update api (#3346)
- Add/update documentation for
GlideClientandGlideClusterClientand for factory constructor for all clients (#3418) - Go: Add
BITOP(#3384) - Go: Add
GeoHash(#3439) - Go/Core: Move FFI to a dedicated folder for reusability (#3372)
- Go: Add
GeoPos(#3409) - Go: Add
GeoDist(#3446) - Go: Add
ClientId(#3077) - Go: Add
LastSave(#3086) - Go: Add
Config Reset Stat(#3121) - Go: Add
GeoSearchandGeoSearchStore(#3385) - Go: Add
ConfigSet&ConfigGetfor cluster client (#3274, #3594) - Go: Add
ClientSetName&ClientGetName(#3302) - Go: Add
Move(#3369) - Go: Add
Scan(#3378) - Go: Add
LCS(#3475) - Core/FFI/Go: Add Support for Async and Sync Client Types in FFI (#3451)
- Core/FFI/Go: Add support for async and sync client types in FFI (#3451)
- Go: Add PubSub support (#3417)
- Go: Add
Publish(#3417) - Go: Add
PubSubChannels(#3665) - Go: Add
PubSubNumPat(#3666) - Go: Add
PubSubNumSub(#3667) - Go: Add
Sharded Publish(#3692) - Go: Add
PubSub ShardChannels(#3695) - Go: Add
PubSub ShardNumSub(#3708) - Go: Add
Config Rewrite(#3156) - Go: Add
Random Key(#3358) - Go: Add Function Load, Function Flush, FCall and FCall_RO (#3474)
- Python: Add equallity check to
ExpirySet(#3554) - Java: Add Batches support (#3561)
- Go: Add Function Stats (#3526)
- Go: Add Function Delete (#3603)
- Go: Add Function Kill (#3604)
- Go: Script eval/load(#3605)
- Benchmarks: Fix rust benchmark latencies calculation
- Go: Add Script Exists (#3649)
- Python: Moved the tests folder to be under the root folder (#3661)
- Go: Add script flush command(#3662)
- Go: Add Script Kill (#3670)
- Go: Add Script Show (#3668)
- Go: Add Function List (#3673)
- Go: Move private types to internal packages (#3841)
- Go: Move private interfaces to internal packages (#3856)
- Java, Python, Node: Fix logger docs, add option to log an exception (#3844)
- Core: Refactor socket listener to use a runtime that lives for the application lifetime #3842
- Go: Add Function Dump & Restore (#3721)
- Python: Fix restore command (#3853)
- Update Go Ort (#3469)
- Go: Remove redundant implementations of echo (#3859)
- Java: Add toArgs() to restore batch command (#3883)
- Java: Add error restore command (#3905)
- Core: Add reference counting to Script container to support multiple instances (#3897)
- Java: Implement support for Insecure TLS authentication mode(#3386)
- Java: Otel implementation (#3962)
- Go: SRandMemberCount command added (#4037)
- Go: SPopCount command added (#4026)
- Go: Batch/Transaction/Pipeline (#3938 and #4005)
- Go:
WATCHandUNWATCH(#4054) - Java: OTEL fix for script (#4065)
- Go: Add Opentelemetry support of creating spans (#3932)
- Go: Fix API to use errors idiomatically (#4090)
- Go: XInfoStream example fix (#4185)
- Node: Validate clientAZ when using AZ affinity strategies (#4267)
- Core: Add support for OTLP environment variables (#4334)
- Go: Drop support for Go 1.20 (#3513)
- Java: Deprecate
TransactionandClusterTransaction(#3561) - Go: Fix response handler for
ZRangeWithScoresto return an ordered result (#3694) - Go: Fix response handler for other sorted set with scores commands to return an ordered result (#3712)
- Java: Change
BZMPOPandZMPOPto returnMap<String, Object>andMap<GlideString, Object>instead ofObject[](#3733) - Go: Add support for
context(#3802) - Go: Change parameters of
EchoWithOptionsto be more user-friendly (#3806) - Java: Shadow netty dependencies. (#3004)
- Go: Modify
requestTimeoutandconnectionTimeoutto be of typetime.Duration(#3857) - Go: Update options.Expiry to use time.Duration (#4089)
- Go: XRead and XReadGroup response update (#4085)
- Go: XClaim and XClaimWithOptions update response type (#4091)
- Modify
PFADDto return a boolean rather than an integer (#4094) - Go: Modify blocking commands to use type
time.Durationfor timeouts (#4086) - Go: Modify most commands to use type
time.Duration(check PR for list of commands modified) (#4105) - Go: XInfoStream update response (#4136)
- Go: Update return type for
XAddwithout optional arguments (#4141) - Go: Change options arguments to not be pointers (#4106)
- Go: Change
ZAddIncrReturn Type to befloat64(#4190) - Go: Update return type for
LMPopand related commands (#4166) - Go:
ZRankWithScoreandZRevRankWithScoreupdate response type (#4196) - Go: Update return type for LCS commands (#4187)
- Add support for Intel MAC (x86_64/amd64) (#3482)
- Go, Java: Fix response handling for
customCommandAPI for cluster client (#3593) - Java: Bump
nettyversion (#3804) - Go: Fix
GeoHash's return type to allow for both strings and null (#4098) - Go:
ClientGetNamereturns a nullable string (#4088)
- Java: Add support to AzAffinityReplicasAndPrimary read strategy (#3083)
- Python: Add support to AzAffinityReplicasAndPrimary read strategy (#3071)
- Node: Add support to AzAffinityReplicasAndPrimary read strategy (#3063)
- Core: Add support to AzAffinityReplicasAndPrimary read strategy (#2986)
- Java, Node, Python: Add transaction commands for JSON module (#2862)
- Java: bump
nettyversion (#2795) - Java: Bump protobuf (protoc) version (#2796, #2800)
- Java: Add binary version of
ZRANK WITHSCORE(#2896) - Java, Node, Python: Update documentation for CONFIG SET and CONFIG GET (#2919)
- Java: Shadow
protobufdependency (#2931) - Java: Add
RESP2support (#2383) - Node, Python: Add
IFEQoption (#2909, #2962) - Java: Add
IFEQoption (#2978) - Core: Add AzAffinityReplicasAndPrimary Read Strategy(#2986)
- Node: Fix
zrangeWithScores(disallowRangeByLexas it is not supported) (#2926) - Core: improve fix in #2381 (#2929)
- Java: Fix
lpopCountnull handling (#3025) - Core: Fix
opentelemetryrelated dependency issue (#3123) - Node: Fix NPM CD tag (#3155)
- Java: replacing map usage in response handling with LinkedHashMap (#3324)
- Go: Preview release of Go client. See documentation for details on specific supported commands in this release.
- Node, Python, Java: Add allow uncovered slots scanning flag option in cluster scan (#2814, #2815, #2860)
- Java: Bump protobuf (protoc) version (#2561, #2802)
- Java: bump
nettyversion (#2777) - Node: Remove native package references for MacOs x64 architecture (#2799)
- Node, Python, Java: Add connection timeout to client configuration (#2823)
- Core: Fix RESP2 multi-node response from cluster (#2381)
- Core: Ensure cluster client creation fail when engine is < 7.0 and sharded subscriptions are configured (#2819)
- Java: Added Client API for retrieving internal statistics (#2672)
- Node: Client API for retrieving internal statistics (#2727)
- Python: Client API for retrieving internal statistics (#2707)
- Node, Python, Java: Adding support for replacing connection configured password (#2651, #2659, #2677)
- Node, Python, Java: AZ Affinity - Python Wrapper Support (#2686, #2676, #2678)
- Node: Add
FT._ALIASLISTcommand (#2652) - Python: Add
FT._ALIASLISTcommand (#2638) - Node: Add
FT.ALIASADD,FT.ALIADDEL,FT.ALIASUPDATE(#2596) - Python code cleanup (#2573)
- Python: Add
FT.PROFILEcommand (#2543) - Python: Add
FT.AGGREGATEcommand (#2530) - Python: Add
JSON.OBJLENcommand (#2495) - Python: Add
FT.EXPLAINandFT.EXPLAINCLIcommands (#2508) - Python: Add
FT.INFOcommand (#2429) - Python: Add
FT.SEARCHcommand (#2470) - Python: Add commands
FT.ALIASADD,FT.ALIASDEL,FT.ALIASUPDATE(#2471) - Python: Add
FT.DROPINDEXcommand (#2437) - Python: Add
FT.CREATEcommand (#2413) - Python: Add
JSON.MGETcommand (#2507) - Python: Add
JSON.ARRLENcommand (#2403) - Python: Add
JSON.CLEARcommand (#2418) - Python: Add
JSON.TYPEcommand (#2409) - Python: Add
JSON.NUMINCRBYcommand (#2448) - Python: Add
JSON.NUMMULTBYcommand (#2458) - Python: Add
JSON.ARRINDEXcommand (#2528) - Python: Add
FT._LISTcommand (#2571) - Python: Add
JSON.DEBUG_MEMORYandJSON.DEBUG_FIELDScommands (#2481) - Java: Added
FT.CREATE(#2414) - Java: Added
FT.INFO(#2405) - Java: Added
FT.DROPINDEX(#2440) - Java: Added
FT.SEARCH(#2439) - Java: Added
FT.AGGREGATE(#2466) - Java: Added
FT.PROFILE(#2473) - Java: Added
JSON.SETandJSON.GET(#2462) - Java: Added
JSON.MGET(#2514) - Node: Added
FT.CREATE(#2501) - Node: Added
FT.INFO(#2540) - Node: Added
FT.AGGREGATE(#2554) - Node: Added
FT.PROFILE(#2633) - Java: Added
JSON.DEBUG(#2520) - Java: Added
JSON.ARRINSERTandJSON.ARRLEN(#2476) - Java: Added
JSON.ARRINDEX(#2546) - Java: Added
JSON.ARRPOP(#2486) - Java: Added
JSON.OBJLENandJSON.OBJKEYS(#2492) - Java: Added
JSON.DELandJSON.FORGET(#2490) - Java: Added
FT.ALIASADD,FT.ALIASDEL,FT.ALIASUPDATE(#2442) - Java: Added
FT._ALIASLIST(#2569) - Java: Added
FT.EXPLAIN,FT.EXPLAINCLI(#2515) - Core: Update routing for commands from server modules (#2461)
- Node: Added
JSON.SETandJSON.GET(#2427) - Node: Added
JSON.MGET(#2567) - Java: Added
JSON.NUMINCRBYandJSON.NUMMULTBY(#2511) - Java: Added
JSON.ARRAPPEND(#2489) - Java: Added
JSON.ARRTRIM(#2518) - Node: Added
JSON.TOGGLE(#2491) - Node: Added
JSON.ARRINSERT,JSON.ARRPOPandJSON.ARRLEN(#2542) - Node: Added
JSON.DELandJSON.FORGET(#2505) - Java: Added
JSON.TOGGLE(#2504) - Java: Added
JSON.STRAPPENDandJSON.STRLEN(#2522) - Java: Added
JSON.CLEAR(#2519) - Node: Added
JSON.TYPE(#2510) - Node: Added
JSON.ARRAPPEND(#2562) - Java: Added
JSON.RESP(#2513) - Java: Added
JSON.TYPE(#2525) - Java: Added
FT._LIST(#2568) - Node: Added
FT.DROPINDEX(#2516) - Node: Added
FT._LIST(#2570) - Node: Added
JSON.RESP(#2517) - Node: Added
FT.EXPLAINandFT.EXPLAINCLI(#2560) - Node: Added
JSON.CLEAR(#2566) - Node: Added
JSON.ARRTRIM(#2550) - Python: Add
JSON.STRAPPEND,JSON.STRLENcommands (#2372) - Node: Added
JSON.ARRINDEX(#2559) - Node: Added
JSON.OBJLENandJSON.OBJKEYS(#2563) - Python: Add
JSON.STRAPPEND,JSON.STRLENcommands (#2372) - Python: Add
JSON.OBJKEYScommand (#2395) - Python: Add
JSON.ARRINSERTcommand (#2464) - Python: Add
JSON.ARRTRIMcommand (#2457) - Python: Add
JSON.ARRAPPENDcommand (#2382) - Python: Add
JSON.RESPcommand (#2451) - Python: Add
JSON.ARRPOPcommand (#2407) - Node: Add
JSON.STRLENandJSON.STRAPPENDcommand (#2537) - Node: Add
FT.SEARCH(#2551) - Python: Fix example (#2556)
- Core: Add support for sending multi-slot JSON.MSET and JSON.MGET commands (#2587)
- Node: Add
JSON.DEBUGcommand (#2572) - Node: Add
JSON.NUMINCRBYandJSON.NUMMULTBYcommand (#2555) - Core: Add support to Availability Zone Affinity read strategy (#2539)
- Core: Fix list of readonly commands (#2634, #2649)
- Core: Improve retry logic and update unmaintained dependencies for Rust lint CI (#2673)
- Core: Release the read lock while creating connections in
refresh_connections(#2630) - Core: SlotMap refactor - Added NodesMap, Update the slot map upon MOVED errors (#2682)
- Core: UDS Socket Handling Rework (#2482)
- Java: Add modules CI (#2388, #2404, #2416)
- Node: Add modules CI (#2472)
- Python: Fix modules CI (#2487)
- Node: Fix binary variant for xinfogroups and lrem (#2324)
- Node: Fixed missing exports (#2301)
- Node: Use
optionsstruct for all optional arguments (#2287) - Node: Added
invokeScriptAPI with routing for cluster client (#2284) - Java: Expanded tests for converting non UTF-8 bytes to Strings (#2286)
- Python: Replace instances of Redis with Valkey (#2266)
- Java: Replace instances of Redis with Valkey (#2268)
- Node: Replace instances of Redis with Valkey (#2260)
- Node: Added binary variant for commands which have
Recordas input or output (#2207) - Node: Renamed
ReturnTypetoGlideReturnType(#2241) - Node: Fix BITPOS for Valkey8 (#2227)
- Node, Python: Rename
stoptoendin sorted set queries (#2214) - Node: Added binary variant to sorted set commands - part 1 (#2190)
- Python: Fix BITPOS for Valkey8 (#2256)
- Node: Added binary variant to HSCAN command (#2240)
- Node: replace decoder by DecoderOption and route by RouteOption in API(#2234)
- Node: Added binary variant to sorted set commands (#2190, #2210)
- Node: Added binary variant for MSET, MSETNX commands (#2229)
- Node: Added binary variant to HASH commands (#2194)
- Node: Added binary variant to server management commands (#2179)
- Node: Added/updated binary variant to connection management commands and WATCH/UNWATCH (#2160)
- Java: Fix docs for stream commands (#2086)
- Node: Added binary variant to bitmap commands (#2178)
- Node: Added binary variant to generic commands (#2158)
- Node: Added binary variant to geo commands (#2149)
- Node: Added binary variant to HYPERLOGLOG commands (#2176)
- Node: Added FUNCTION DUMP and FUNCTION RESTORE commands (#2129, #2173)
- Node: Added binary variant to FUNCTION commands (#2172)
- Node: Added ZUNIONSTORE command (#2145)
- Node: Added XREADGROUP command (#2124)
- Node: Added XINFO GROUPS command (#2122)
- Java: Added PUBSUB CHANNELS, NUMPAT and NUMSUB commands (#2105)
- Java: Added PUBSUB SHARDCHANNELS command (#2265)
- Java: Added PUBSUB SHARDNUMSUB command (#2279)
- Java: Added binary support for custom command (#2109)
- Node: Added SSCAN command (#2132)
- Node: Added HKEYS command (#2136)
- Node: Added FUNCTION KILL command (#2114)
- Node: Update all commands to use
async(#2110) - Node: Added XAUTOCLAIM command (#2108)
- Node: Added XPENDING commands (#2085)
- Node: Added HSCAN command (#2098)
- Node: Added XINFO CONSUMERS command (#2093)
- Node: Added HRANDFIELD command (#2096)
- Node: Added FUNCTION STATS commands (#2082)
- Node: Added XCLAIM command (#2092)
- Node: Added EXPIRETIME and PEXPIRETIME commands (#2063)
- Node: Added SORT commands (#2028)
- Node: Added LASTSAVE command (#2059)
- Node: Added GEOSEARCHSTORE command (#2080)
- Node: Added LCS command (#2049)
- Node: Added MSETNX command (#2046)
- Node: Added BLMOVE command (#2027)
- Node: Exported client configuration types (#2023)
- Java, Python: Update docs for GEOSEARCH command (#2017)
- Python: Update docs for BITFIELD and BITFIELD_RO commands (#2048)
- Node: Added FUNCTION LIST command (#2019)
- Node: Added GEOSEARCH command (#2007)
- Node: Added LMOVE command (#2002)
- Node: Added GEOPOS command (#1991)
- Node: Added BITCOUNT command (#1982)
- Node: Added BITPOS command (#1998)
- Node: Added BITFIELD and BITFIELD_RO commands (#2026)
- Node: Added TOUCH command (#2055)
- Node: Added FLUSHDB command (#1986)
- Node: Added GETDEL command (#1968)
- Node: Added GETRANGE command (#2079)
- Node: Added BITOP command (#2012)
- Node: Added GETBIT command (#1989)
- Node: Added SETBIT command (#1978)
- Node: Added RANDOMKEY command (#2057)
- Node: Added LPUSHX and RPUSHX command(#1959)
- Node: Added LSET command (#1952)
- Node: Added SDIFFSTORE command (#1931)
- Node: Added ZDIFF command (#1972)
- Node: Added ZDIFFSTORE command (#1985)
- Node: Added SINTERCARD command (#1956)
- Node: Added SINTERSTORE command (#1929)
- Node: Added SUNION command (#1919)
- Node: Added SMISMEMBER command (#1955)
- Node: Added SDIFF command (#1924)
- Node: Added ZMSCORE command (#1987)
- Node: Added LOLWUT command (#1934)
- Node: Added LPOS command (#1927)
- Node: Added FUNCTION LOAD command (#1969)
- Node: Added FUNCTION DELETE command (#1990)
- Node: Added FUNCTION FLUSH command (#1984)
- Node: Added FCALL and FCALL_RO commands (#2011)
- Node: Added COPY command (#2024)
- Node: Added MOVE command (#2104)
- Node: Added ZMPOP command (#1994)
- Node: Added ZINCRBY command (#2009)
- Node: Added BZMPOP command (#2018)
- Node: Added XRANGE command (#2069)
- Node: Added XREVRANGE command (#2148)
- Node: Added PFMERGE command (#2053)
- Node: Added WATCH and UNWATCH commands (#2076)
- Node: Added WAIT command (#2113)
- Node: Added DUMP and RESTORE commands (#2126)
- Node: Added transaction supports for DUMP and RESTORE (#2159)
- Node: Added ZLEXCOUNT command (#2022)
- Node: Added ZREMRANGEBYLEX command (#2025)
- Node: Added ZRANGESTORE command (#2068)
- Node: Added SRANDMEMBER command (#2067)
- Node: Added XINFO STREAM command (#2083)
- Node: Added ZSCAN command (#2061)
- Node: Added SETRANGE command (#2066)
- Node: Added APPEND command (#2095)
- Node: Added XDEL command (#2064)
- Node: Added LMPOP & BLMPOP command (#2050)
- Node: Added PUBSUB support (#1964)
- Node: Added PUBSUB * commands (#2090)
- Python: Added PUBSUB * commands (#2043)
- Node: Added XGROUP CREATE & XGROUP DESTROY commands (#2084)
- Node: Added BZPOPMAX & BZPOPMIN command (#2077)
- Node: Added XGROUP CREATECONSUMER & XGROUP DELCONSUMER commands (#2088)
- Node: Added GETEX command (#2107)
- Node: Added ZINTER and ZUNION commands (#2146)
- Node: Added XACK commands (#2112)
- Node: Added XGROUP SETID command (#2135)
- Node: Added binary variant to string commands (#2183)
- Node: Added binary variant to stream commands (#2200, #2222)
- Python: Add Script commands (#2208)
- Node: Added Script commands (#2267)
- Java, Node, Python: Add BY/GET support for SORT/RO in cluster mode (Valkey-8) (#2252)
- Java, Node, Python: Add SCRIPT SHOW command (Valkey-8) (#2171)
- Java, Node, Python: Change BITCOUNT end param to optional (Valkey-8) (#2248)
- Java, Node, Python: Add NOSCORES option to ZSCAN & NOVALUES option to HSCAN (Valkey-8) (#2174)
- Node: Add SCAN command (#2257)
- Java: Add Script commands (#2261)
- Python: Replace google-api-python-client with protobuf (#2304)
- Java: Update INFO command (#2274)
- Node: (Refactor) Convert types to interfaces (#2263)
- Node: (Refactor) Convert classes to types (#2005)
- Core: Change FUNCTION STATS command to return multi node response for standalone mode (#2117)
- Java: Fix GlideString conversion from byte to String (#2271)
- Java: Add overloads for XADD to allow duplicate entry keys (#1970)
- Node: Fix ZADD bug where command could not be called with only the
changedoptional parameter (#1995) - Java:
XRange/XRevRangeshould returnnullinstead ofGlideExceptionwhen given a negative count (#1920) - Python: Fix
XClaimreturn type toList[bytes]instead ofList[TEncodable](#2075) - Python: Add missing exports (#2341)
- Node: Add missing exports (#2342)
- CI/CD: Create Workflow to deploy artifacts for all platforms (#2285)
- Node: Get valkey/redis version using client's info command (#2276)
- Java: Fetch server version using client's info command (#2258)
- CI/CD: Add workflow for automating Maven release (#2128)
- Node: Added ZINTERSTORE command (#1513)
- Python: Added OBJECT ENCODING command (#1471)
- Python: Added OBJECT FREQ command (#1472)
- Python: Added OBJECT IDLETIME command (#1474)
- Python: Added GEOSEARCH command (#1482)
- Python: Added GEOSEARCHSTORE command (#1581)
- Node: Added RENAMENX command (#1483)
- Python: Added OBJECT REFCOUNT command (#1485)
- Python: Added RENAMENX command (#1492)
- Python: Added PFCOUNT command (#1493)
- Python: Added PFMERGE command (#1497)
- Node: Added SINTER command (#1500)
- Python: Added XLEN command (#1503)
- Python: Added LASTSAVE command (#1509)
- Python: Added GETDEL command (#1514)
- Python: Added GETRANGE command (#1585)
- Python: Added ZINTER, ZUNION commands (#1478)
- Python: Added SINTERCARD command (#1511)
- Python: Added SORT command (#1439)
- Node: Added OBJECT ENCODING command (#1518, #1559)
- Python: Added LMOVE and BLMOVE commands (#1536)
- Node: Added SUNIONSTORE command (#1549)
- Python: Added SUNION command (#1583)
- Node: Added PFCOUNT command (#1545)
- Node: Added OBJECT FREQ command (#1542, #1559)
- Node: Added LINSERT command (#1544)
- Node: Added XLEN command (#1555)
- Node: Added ZINTERCARD command (#1553)
- Python: Added ZINCBY command (#1586)
- Python: Added LMPOP and BLMPOP commands (#1547)
- Python: Added HSTRLEN command (#1564)
- Python: Added MSETNX command (#1565)
- Python: Added MOVE command (#1566)
- Python: Added EXPIRETIME, PEXPIRETIME commands (#1587)
- Python: Added LSET command (#1584)
- Node: Added OBJECT IDLETIME command (#1567)
- Node: Added OBJECT REFCOUNT command (#1568)
- Python: Added SETBIT command (#1571)
- Python: Added SRandMember command (#1578)
- Python: Added GETBIT command (#1575)
- Python: Added BITCOUNT command (#1592)
- Python: Added FLUSHALL command (#1579)
- Python: Added TOUCH command (#1582)
- Python: Added BITOP command (#1596)
- Python: Added BITPOS command (#1604)
- Python: Added GETEX command (#1612)
- Python: Added BITFIELD and BITFIELD_RO commands (#1615)
- Python: Added ZREVRANK command (#1614)
- Python: Added XDEL command (#1619)
- Python: Added XRANGE command (#1624)
- Python: Added COPY command (#1626)
- Python: Added XREVRANGE command (#1625)
- Python: Added XREAD command (#1644)
- Python: Added XGROUP CREATE and XGROUP DESTROY commands (#1646)
- Python: Added XGROUP CREATECONSUMER and XGROUP DELCONSUMER commands (#1658)
- Python: Added LOLWUT command (#1657)
- Python: Added XREADGROUP command (#1679)
- Python: Added XACK command (#1681)
- Python: Added FLUSHDB command (#1680)
- Python: Added XGROUP SETID command (#1683)
- Python: Added FUNCTION LOAD command (#1699)
- Python: Added XPENDING command (#1704)
- Python: Added RANDOMKEY command (#1701)
- Python: Added FUNCTION FLUSH command (#1700)
- Python: Added FUNCTION DELETE command (#1714)
- Python: Added FUNCTION LIST command (#1738)
- Python: Added SSCAN command (#1709)
- Python: Added LCS command (#1716)
- Python: Added WAIT command (#1710)
- Python: Added XAUTOCLAIM command (#1718)
- Python: Add ZSCAN and HSCAN commands (#1732)
- Python: Added FCALL_RO command (#1721)
- Python: Added WATCH and UNWATCH command (#1736)
- Python: Added XCLAIM command (#1772)
- Python: Added XINFO GROUPS and XINFO CONSUMERS commands (#1753)
- Python: Added LPOS command (#1740)
- Python: Added SCAN command (#1623)
- Python: Added DUMP and Restore commands (#1733)
- Java: Added SCAN command (#1751)
- Python: Added FUNCTION KILL command (#1797)
- Python: Type migration for entries_read (#1768)
- Python: Added FUNCTION DUMP and FUNCTION RESTORE commands (#1769)
- Python: Added FUNCTION STATS command (#1794)
- Python: Added XINFO STREAM command (#1816)
- Python: Added transaction supports for DUMP, RESTORE, FUNCTION DUMP and FUNCTION RESTORE (#1814)
- Node: Added FlushAll command (#1958)
- Node: Added DBSize command (#1932)
- Node: Added GeoAdd command (#1980)
- Node: Added ZRevRank command (#1977)
- Node: Added GeoDist command (#1988)
- Node: Added GeoHash command (#1997)
- Node: Added HStrlen command (#2020)
- Node: Added ZRandMember command (#2013)
- Node: Update XREAD to return a Map of Map (#1494)
- Node: Rename RedisClient to GlideClient and RedisClusterClient to GlideClusterClient (#1670)
- Python: Rename RedisClient to GlideClient, RedisClusterClient to GlideClusterClient and BaseRedisClient to BaseClient(#1669)
- Python: Rename ClusterClientConfiguration to GlideClusterClientConfiguration (#1806)
- Python: fixing a bug with transaction exec (#1796)
- Node: Fix set command bug with expiry option (#1508)
- Python: Added JSON.DEL JSON.FORGET commands (#1146)
- Python: Added STRLEN command (#1230)
- Python: Added HKEYS command (#1228)
- Python: Added RPUSHX and LPUSHX commands (#1239)
- Python: Added ZREMRANGEBYSCORE command (#1151)
- Node, Python: Added SPOP, SPOPCOUNT commands. (#1117, #1261)
- Node: Added ZRANGE command (#1115)
- Python: Added RENAME command (#1252)
- Python: Added APPEND command (#1152)
- Python: Added GEOADD command (#1259)
- Python: Added GEODIST command (#1260)
- Python: Added GEOHASH command (#1281)
- Python: Added ZLEXCOUNT command (#1305)
- Python: Added ZREMRANGEBYLEX command (#1306)
- Python: Added LINSERT command (#1304)
- Python: Added GEOPOS command (#1301)
- Node: Added PFADD command (#1317)
- Python: Added PFADD command (#1315)
- Python: Added ZMSCORE command (#1357)
- Python: Added HRANDFIELD command (#1334)
- Node: Added BLPOP command (#1223)
- Python: Added XADD, XTRIM commands (#1320)
- Python: Added BLPOP and BRPOP commands (#1369)
- Python: Added ZRANGESTORE command (#1377)
- Python: Added ZDIFFSTORE command (#1378)
- Python: Added ZDIFF command (#1401)
- Python: Added BZPOPMIN and BZPOPMAX commands (#1399)
- Python: Added ZUNIONSTORE, ZINTERSTORE commands (#1388)
- Python: Added ZRANDMEMBER command (#1413)
- Python: Added BZMPOP command (#1412)
- Python: Added ZINTERCARD command (#1418)
- Python: Added ZMPOP command (#1417)
- Python: Added SMOVE command (#1421)
- Python: Added SUNIONSTORE command (#1423)
- Python: Added SINTER command (#1434)
- Python: Added SDIFF command (#1437)
- Python: Added SDIFFSTORE command (#1449)
- Python: Added SINTERSTORE command (#1459)
- Python: Added SMISMEMBER command (#1461)
- Python: Added SETRANGE command (#1453)
- Python: Fix typing error "'type' object is not subscriptable" (#1203)
- Core: Fixed blocking commands to use the specified timeout from the command argument (#1283)
- Node: Changed
smembersandspopCountfunctions to return Set instead of string[] (#1299)
- Node: Added support for alpine based platform (Or any x64-musl or arm64-musl based platforms) (#1379)
- Node: Fix issue with dual usage,
CommonJSandECMAScriptmodules. (#1199)
- Python Node: Allow routing Cluster requests by address. (#1021)
- Python, Node: Added HSETNX command. (#954, #1091)
- Python, Node: Added SISMEMBER command (#972, #1083)
- Python, Node: Added TYPE command (#945, #980)
- Python, Node: Added HLEN command (#944, #981)
- Python, Node: Added ZCOUNT command (#878) (#909)
- Python, Node: Added ECHO command (#953, #1010)
- Python, Node: Added ZPOPMIN command (#975, #1008)
- Node: Added STRLEN command (#993)
- Node: Added LINDEX command (#999)
- Python, Node: Added ZPOPMAX command (#996, #1009)
- Python: Added ZRANGE command (#906)
- Python, Node: Added PTTL command (#1036, #1082)
- Python, Node: Added HVAL command (#1130), (#1022)
- Python, Node: Added PERSIST command (#1129), (#1023)
- Node: Added ZREMRANGEBYSCORE command (#926)
- Node: Added ZREMRANGEBYRANK command (#924)
- Node: Added Xadd, Xtrim commands. (#1057)
- Python: Added json module and JSON.SET JSON.GET commands (#1056)
- Python, Node: Added Time command (#1147), (#1114)
- Python, Node: Added LINDEX command (#1058, #999)
- Python, Node: Added ZRANK command (#1065, #1149)
- Core: Enabled Cluster Mode periodic checks by default (#1089)
- Node: Added Rename command. (#1124)
- Python: Added JSON.TOGGLE command (#1184)
- Python: Allow chaining function calls on transaction. (#987)
- Node: Adding support for GLIDE's usage in projects based on either
CommonJSorECMAScriptmodules. (#1132) - Python, Node: Added Cluster Mode configuration for periodic checks interval (#1089, #1158)
- Python, Node: Added ZCARD command (#871, #885)
- Python, Node: Added ZADD and ZADDINCR commands (#814, #830)
- Python, Node: Added ZREM command (#834, #831)
- Python, Node: Added ZSCORE command (#877, #889)
- Use jemalloc as default allocator. (#847)
- Python, Node: Added RPOPCOUNT and LPOPCOUNT to transaction (#874)
- Standalone client: Improve connection errors. (#854)
- Python, Node: When recieving LPOP/RPOP with count, convert result to Array. (#811)
- Python, Node: Added TYPE command (#945, #980)
- Python, Node: Added HLEN command (#944, #981)
- Python, Node: Added ZCOUNT command (#878) (#909)
- Python: Added ECHO command (#953)
- Python, Node: Added ZPOPMIN command (#975, #1008)
- Node: Added STRLEN command (#993)
- Node: Added LINDEX command (#999)
- Python, Node: Added ZPOPMAX command (#996, #1009)
- Python: Added DBSIZE command (#1040)
- Core: Log directory can now be modified by setting the environment variable
GLIDE_LOG_DIR(#2704)
- Python, Node: Added support in Lua Scripts (#775, #860)
- Node: Allow chaining function calls on transaction. (#902)
- Core: Fixed
Connection Refusederror not to close the client (#872) - Socket listener: fix identifier for closed reader error. (#853)
- Node: Fix issues with type import & exports (#767)
- Core: Added handling to "?" and NULL hostnames in CLUSTER SLOTS (#104)
- Core: Cluster connection now reconnects after full disconnect. (#100)
Preview release of GLIDE for Redis a Polyglot Redis client.
See the README for additional information.