Skip to content

Latest commit

 

History

History
808 lines (711 loc) · 71.2 KB

File metadata and controls

808 lines (711 loc) · 71.2 KB

2.2

Changes

  • 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)
  • 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)

Fixes

  • Node: Resolved circular import dependency between BaseClient.ts, GlideClient.ts, and GlideClusterClient.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

Operational Enhancements

  • Rust: Updates the install-rust-and-protoc action to explicitly include the rustfmt and clippy components. (#4816)

2.1.1

Changes

  • 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)

Fixes

  • CORE: Fix SELECT Command Database Persistence Across Reconnections (#4764)
  • Rust: Updates the install-rust-and-protoc action to explicitly include the rustfmt and clippy components. (#4816)
  • CORE: Persist Client Name Across Reconnections for CLIENT SETNAME Command. (#4841)

2.1

Changes

  • 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)

Fixes

  • 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)

Operational Enhancements

  • FFI: Add MIRI tests to CI (#4506)
  • CORE/FFI/GO - SpanFromContext implementation (#4507)

2.0 (2025-06-18)

Changes

  • Core/FFI/Go: Fix memory leak in FFI layer (#4395)

2.0.1 (2025-07-19)

Changes

  • 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 opentelemetry protocols 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 opentelemetry metrics support (#3466)
  • Core: Add opentelemetry moved, retry attemps counters and set_status (#3944)
  • Node: Fix ZADD, enabling +inf and -inf as 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.Pinner or cgo.Handle (#3208)
  • Go: Add BZPOPMAX and ZMPOP #3257
  • Go: Fix data race on the coreClient with sync.Mutex and 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 GeoAdd and 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 GlideClient and GlideClusterClient and 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 GeoSearch and GeoSearchStore (#3385)
  • Go: Add ConfigSet & ConfigGet for 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: WATCH and UNWATCH (#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)

Breaking Changes

  • Go: Drop support for Go 1.20 (#3513)
  • Java: Deprecate Transaction and ClusterTransaction (#3561)
  • Go: Fix response handler for ZRangeWithScores to return an ordered result (#3694)
  • Go: Fix response handler for other sorted set with scores commands to return an ordered result (#3712)
  • Java: Change BZMPOP and ZMPOP to return Map<String, Object> and Map<GlideString, Object> instead of Object[] (#3733)
  • Go: Add support for context (#3802)
  • Go: Change parameters of EchoWithOptions to be more user-friendly (#3806)
  • Java: Shadow netty dependencies. (#3004)
  • Go: Modify requestTimeout and connectionTimeout to be of type time.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 PFADD to return a boolean rather than an integer (#4094)
  • Go: Modify blocking commands to use type time.Duration for 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 XAdd without optional arguments (#4141)
  • Go: Change options arguments to not be pointers (#4106)
  • Go: Change ZAddIncr Return Type to be float64 (#4190)
  • Go: Update return type for LMPop and related commands (#4166)
  • Go: ZRankWithScore and ZRevRankWithScore update response type (#4196)
  • Go: Update return type for LCS commands (#4187)

Fixes

  • Add support for Intel MAC (x86_64/amd64) (#3482)
  • Go, Java: Fix response handling for customCommand API for cluster client (#3593)
  • Java: Bump netty version (#3804)
  • Go: Fix GeoHash's return type to allow for both strings and null (#4098)
  • Go: ClientGetName returns a nullable string (#4088)

Operational Enhancements

1.3.0 (2025-02-14)

Changes

  • 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 netty version (#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 protobuf dependency (#2931)
  • Java: Add RESP2 support (#2383)
  • Node, Python: Add IFEQ option (#2909, #2962)
  • Java: Add IFEQ option (#2978)
  • Core: Add AzAffinityReplicasAndPrimary Read Strategy(#2986)

Breaking Changes

Fixes

  • Node: Fix zrangeWithScores (disallow RangeByLex as it is not supported) (#2926)
  • Core: improve fix in #2381 (#2929)
  • Java: Fix lpopCount null handling (#3025)
  • Core: Fix opentelemetry related dependency issue (#3123)
  • Node: Fix NPM CD tag (#3155)
  • Java: replacing map usage in response handling with LinkedHashMap (#3324)

Operational Enhancements

Features

  • Go: Preview release of Go client. See documentation for details on specific supported commands in this release.

1.2.1 (2024-12-29)

Changes

  • 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 netty version (#2777)
  • Node: Remove native package references for MacOs x64 architecture (#2799)
  • Node, Python, Java: Add connection timeout to client configuration (#2823)

Breaking Changes

Fixes

  • 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)

Operational Enhancements

1.2.0 (2024-11-27)

Changes

  • 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._ALIASLIST command (#2652)
  • Python: Add FT._ALIASLIST command (#2638)
  • Node: Add FT.ALIASADD, FT.ALIADDEL, FT.ALIASUPDATE (#2596)
  • Python code cleanup (#2573)
  • Python: Add FT.PROFILE command (#2543)
  • Python: Add FT.AGGREGATE command (#2530)
  • Python: Add JSON.OBJLEN command (#2495)
  • Python: Add FT.EXPLAIN and FT.EXPLAINCLI commands (#2508)
  • Python: Add FT.INFO command (#2429)
  • Python: Add FT.SEARCH command (#2470)
  • Python: Add commands FT.ALIASADD, FT.ALIASDEL, FT.ALIASUPDATE (#2471)
  • Python: Add FT.DROPINDEX command (#2437)
  • Python: Add FT.CREATE command (#2413)
  • Python: Add JSON.MGET command (#2507)
  • Python: Add JSON.ARRLEN command (#2403)
  • Python: Add JSON.CLEAR command (#2418)
  • Python: Add JSON.TYPE command (#2409)
  • Python: Add JSON.NUMINCRBY command (#2448)
  • Python: Add JSON.NUMMULTBY command (#2458)
  • Python: Add JSON.ARRINDEX command (#2528)
  • Python: Add FT._LIST command (#2571)
  • Python: Add JSON.DEBUG_MEMORY and JSON.DEBUG_FIELDS commands (#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.SET and JSON.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.ARRINSERT and JSON.ARRLEN (#2476)
  • Java: Added JSON.ARRINDEX (#2546)
  • Java: Added JSON.ARRPOP (#2486)
  • Java: Added JSON.OBJLEN and JSON.OBJKEYS (#2492)
  • Java: Added JSON.DEL and JSON.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.SET and JSON.GET (#2427)
  • Node: Added JSON.MGET (#2567)
  • Java: Added JSON.NUMINCRBY and JSON.NUMMULTBY (#2511)
  • Java: Added JSON.ARRAPPEND (#2489)
  • Java: Added JSON.ARRTRIM (#2518)
  • Node: Added JSON.TOGGLE (#2491)
  • Node: Added JSON.ARRINSERT, JSON.ARRPOP and JSON.ARRLEN (#2542)
  • Node: Added JSON.DEL and JSON.FORGET (#2505)
  • Java: Added JSON.TOGGLE (#2504)
  • Java: Added JSON.STRAPPEND and JSON.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.EXPLAIN and FT.EXPLAINCLI (#2560)
  • Node: Added JSON.CLEAR (#2566)
  • Node: Added JSON.ARRTRIM (#2550)
  • Python: Add JSON.STRAPPEND, JSON.STRLEN commands (#2372)
  • Node: Added JSON.ARRINDEX (#2559)
  • Node: Added JSON.OBJLEN and JSON.OBJKEYS (#2563)
  • Python: Add JSON.STRAPPEND, JSON.STRLEN commands (#2372)
  • Python: Add JSON.OBJKEYS command (#2395)
  • Python: Add JSON.ARRINSERT command (#2464)
  • Python: Add JSON.ARRTRIM command (#2457)
  • Python: Add JSON.ARRAPPEND command (#2382)
  • Python: Add JSON.RESP command (#2451)
  • Python: Add JSON.ARRPOP command (#2407)
  • Node: Add JSON.STRLEN and JSON.STRAPPEND command (#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.DEBUG command (#2572)
  • Node: Add JSON.NUMINCRBY and JSON.NUMMULTBY command (#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)

Breaking Changes

Fixes

  • Core: UDS Socket Handling Rework (#2482)

Operational Enhancements

1.1.0 (2024-09-24)

Changes

  • Node: Fix binary variant for xinfogroups and lrem (#2324)
  • Node: Fixed missing exports (#2301)
  • Node: Use options struct for all optional arguments (#2287)
  • Node: Added invokeScript API 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 Record as input or output (#2207)
  • Node: Renamed ReturnType to GlideReturnType (#2241)
  • Node: Fix BITPOS for Valkey8 (#2227)
  • Node, Python: Rename stop to end in 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)

Breaking Changes

  • 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)

Fixes

  • 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 changed optional parameter (#1995)
  • Java: XRange/XRevRange should return null instead of GlideException when given a negative count (#1920)
  • Python: Fix XClaim return type to List[bytes] instead of List[TEncodable] (#2075)
  • Python: Add missing exports (#2341)
  • Node: Add missing exports (#2342)

Operational Enhancements

  • 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)

1.0.0 (2024-07-09)

Changes

  • 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)

Breaking Changes

  • 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)

Fixes

  • Python: fixing a bug with transaction exec (#1796)

0.4.1 (2024-06-02)

Fixes

  • Node: Fix set command bug with expiry option (#1508)

0.4.0 (2024-05-26)

Changes

  • 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)

Fixes

  • Python: Fix typing error "'type' object is not subscriptable" (#1203)
  • Core: Fixed blocking commands to use the specified timeout from the command argument (#1283)

Breaking Changes

  • Node: Changed smembers and spopCount functions to return Set instead of string[] (#1299)

Features

  • Node: Added support for alpine based platform (Or any x64-musl or arm64-musl based platforms) (#1379)

0.3.3 (2024-03-28)

Fixes

  • Node: Fix issue with dual usage, CommonJS and ECMAScript modules. (#1199)

0.3.0 (2024-03-25)

Changes

  • 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)

Features

  • Python: Allow chaining function calls on transaction. (#987)
  • Node: Adding support for GLIDE's usage in projects based on either CommonJS or ECMAScript modules. (#1132)
  • Python, Node: Added Cluster Mode configuration for periodic checks interval (#1089, #1158)

0.2.0 (2024-02-11)

Changes

  • 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)

Features

  • Python, Node: Added support in Lua Scripts (#775, #860)
  • Node: Allow chaining function calls on transaction. (#902)

Fixes

  • Core: Fixed Connection Refused error 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)

0.1.0 (2024-01-17)

Preview release of GLIDE for Redis a Polyglot Redis client.

See the README for additional information.