Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@valkey/valkey-glide

valkey-io25.2kApache-2.01.3.4TypeScript support: included

General Language Independent Driver for the Enterprise (GLIDE) for Valkey

valkey, valkeyClient, client, valkey-glide

readme

Valkey GLIDE

Valkey General Language Independent Driver for the Enterprise (GLIDE), is an open-source Valkey client library. Valkey GLIDE is one of the official client libraries for Valkey, and it supports all Valkey commands. Valkey GLIDE supports Valkey 7.2 and above, and Redis open-source 6.2, 7.0 and 7.2. Application programmers use Valkey GLIDE to safely and reliably connect their applications to Valkey- and Redis OSS- compatible services. Valkey GLIDE is designed for reliability, optimized performance, and high-availability, for Valkey and Redis OSS based applications. It is sponsored and supported by AWS and GCP, and is pre-configured with best practices learned from over a decade of operating Redis OSS-compatible services used by hundreds of thousands of customers. To help ensure consistency in application development and operations, Valkey GLIDE is implemented using a core driver framework, written in Rust, with language specific extensions. This design ensures consistency in features across languages and reduces overall complexity.

Supported Engine Versions

Valkey GLIDE is API-compatible with the following engine versions:

Engine Type 6.2 7.0 7.2 8.0
Valkey - - V V
Redis V V V -

Current Status and upcoming releases

In the current release, Valkey GLIDE is available for Python, Java and Node.js. Support for Go is currently in public preview and support for C# is under active development, with plans to include more programming languages in the future.

v1.2 (Dec. 2024)

  • Vector Similarity Search and JSON modules support
  • Availability zone routing for Read from Replica

v1.3 (Feb. 2025)

  • Public preview for GO support
  • Observability with Open Telemetry
  • Client side metrics

Getting Started

Getting Help

If you have any questions, feature requests, encounter issues, or need assistance with this project, please don't hesitate to open a GitHub issue. Our community and contributors are here to help you. Before creating an issue, we recommend checking the existing issues to see if your question or problem has already been addressed. If not, feel free to create a new issue, and we'll do our best to assist you. Please provide as much detail as possible in your issue description, including:

  1. A clear and concise title
  2. Detailed description of the problem or question
  3. Reproducible test case or step-by-step instructions
  4. Valkey GLIDE version in use
  5. Operating system details
  6. Server version
  7. Cluster or standalone setup information, including topology, number of shards, number of replicas, and data types used
  8. Relevant modifications you've made
  9. Any unusual aspects of your environment or deployment
  10. Log files

Known issues

GLIDE has a native component as a Rust based library. Currently the native componnent is not compatible with certion older GLIBC based OS's. The most relevant one is Debian 11, which is the base of ubuntu 20, which some other distros are based on, like Mint and Pop!_OS 20 etc. As a result, the ones mentioned above are incompatible with GLIDE.

Another OS which is known to be incompatible is Amazon Linux 2, which is the previoues versions of what AWS Lambda is running on (node 18, py <=11, java <= 17). Note that this is not affecting MUSL based distros, which are not based on GLIBC.

For all the incompatible Linux distros listed, there's at least one newer and stable version available, and it is recomended to use them.

Incompatible Distro Version Compatible Successor Version
Debian 11 Debian 12 / 13
Ubuntu 20.04 LTS Ubuntu 22.04 LTS / 24.04 LTS
Linux Mint 20 Linux Mint 21 / 22
Pop!_OS 20.04 LTS Pop!_OS 22.04 LTS
Amazon Linux 2 Amazon Linux 2023

When running on incompatible systems, the client crashes with one of the following errors:

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
/lib64/libm.so.6: version `GLIBC_2.29' not found

You can get the GLIBC version included in your OS by running ldd --version. GLIBC versions 2.26, 2.27, 2.30, and 2.31 are not supported. We are working hard to resolve this issue. You can track our progress in issue #3291.

Contributing

GitHub is a platform for collaborative coding. If you're interested in writing code, we encourage you to contribute by submitting pull requests from forked copies of this repository. Additionally, please consider creating GitHub issues for reporting bugs and suggesting new features. Feel free to comment on issues that interest. For more info see Contributing.

License

changelog

Releases

1.3.3 (2025-05-02)

Changes

Features

Breaking Changes

Fixes

  • Core: Ensure UDS socket filename is truly unique. (#3596)
  • Python: Add equality check to ExpirySet (#3554)
  • Java: replacing map usage in response handling with LinkedHashMap (#3324)
  • JAVA: remove reference to outdated build task in DEVELOPER.md (#3393)
  • Python: Add source distribution upload to the PyPi-cd workflow (#3214)
  • Core: Move UDS Socket Filename to tmp (#3615)
  • Node: Fix comment for keepExisting in SetOptions (#3648)
  • Node: Move npmignore to dev dependencies (#3655)
  • Node: Added build improvements for rust release (#3606)
  • Node: Fix get command example with Bytes decoder (#3682)
  • Python: fix PARAMS count in ft.search query (#3706)
  • Node: Fix functionLoad examples (#3710)
  • Go: Fix ZRangeWithScores Order (#3694)

1.3.2 (2025-04-06)

Changes

Breaking Changes

Fixes

Operational Enhancements

1.3.1 (2025-03-04)

Changes

Breaking Changes

Fixes

  • Go: Fix data race on the coreClient with sync.Mutex and a channel map (#3292)
  • Go: Fix channel passing from Go to Rust by using runtime.Pinner or cgo.Handle (#3270)

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)
  • Go: Add HScan command (#2917)
  • Java, Node, Python: Add transaction commands for JSON module (#2862)
  • Go: Add HINCRBY command (#2847)
  • Go: Add HINCRBYFLOAT command (#2846)
  • Go: Add SUNIONSTORE command (#2805)
  • Go: Add SUNION (#2787)
  • Java: bump netty version (#2795)
  • Java: Bump protobuf (protoc) version (#2796, #2800)
  • Go: Add SInterStore (#2779)
  • Go: Add ZIncrBy command (#2830)
  • Go: Add SScan and SMove (#2789)
  • Go: Add ZADD (#2813)
  • Go: Add ZPopMin and ZPopMax (#2850)
  • Java: Add binary version of ZRANK WITHSCORE (#2896)
  • Go: Add ZCARD (#2838)
  • Java, Node, Python: Update documentation for CONFIG SET and CONFIG GET (#2919)
  • Go: Add BZPopMin (#2849)
  • Java: Shadow protobuf dependency (#2931)
  • Java: Add RESP2 support (#2383)
  • Node, Python: Add IFEQ option (#2909, #2962)
  • Java: Add IFEQ option (#2978)

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 (backport to 1.3) (#3130)
  • Node: Fix NPM CD tag (#3163)

Operational Enhancements

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.