Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions src/content/docs/concepts/architecture/rust-core-design.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ sidebar:

---

import { Aside } from '@astrojs/starlight/components';

Valkey GLIDE is built on a sophisticated, layered architecture designed to deliver consistent, high-performance database interaction across multiple programming languages.
It features a **unified core engine written in Rust**, which handles all the complex, low-level tasks of client-server communication.

Expand Down Expand Up @@ -59,9 +57,7 @@ In general, each language binding is responsible for:
* **Handles Callbacks:** Enables event propagation across language boundaries
* **Ensures Safety:** Prevents memory leaks and undefined behavior

<Aside>
The FFI layer is implemented using language-specific FFI mechanisms, e.g. Py03 for Python or JNI (Java Native Interface) for Java.
</Aside>
Each client reaches the FFI layer through its language's native interop mechanism. The Python async client uses PyO3 and the sync client uses CFFI. Java uses JNI (Java Native Interface), Node.js uses NAPI-RS, and Go uses cgo. C# calls the Rust library through P/Invoke, PHP through a C extension, and Ruby through the `ffi` gem.

## The Rust Core

Expand Down
16 changes: 7 additions & 9 deletions src/content/docs/getting-started/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,8 @@ For this guide, we will use a standalone client to connect to a Valkey Docker in
### Linux

* Ubuntu 20 (x86\_64/amd64 and arm64/aarch64)
* Amazon Linux 2 (AL2) and 2023 (AL2023) (x86\_64)

:::caution
Note: Currently Alpine Linux / MUSL is NOT supported.
:::
* Amazon Linux 2 (AL2) and 2023 (AL2023) (x86\_64). The Node.js client does not support AL2; see [Known Issues](/reference/known-issues).
* Alpine Linux are not supported for Python and C# clients. See [Installation Guide](/how-to/installation/#alpine-linux) for more details.

### MacOS

Expand All @@ -62,15 +59,16 @@ Note: Currently Alpine Linux / MUSL is NOT supported.

### Windows

Windows support is currently available only for Valkey-GLIDE Java
Windows support is currently available for Valkey GLIDE Java and C#.

* Windows (x86\_64)
* Windows (arm64) — C# only

## Install Valkey GLIDE

<ClientTabs>
<ClientTab slot="python">
**Requirements:** Python 3.9 to 3.13.
**Requirements:** Python 3.9 to 3.14.

```bash
# Install the latest version
Expand All @@ -79,7 +77,7 @@ Windows support is currently available only for Valkey-GLIDE Java
</ClientTab>

<ClientTab slot="java">
**Requirements:** JDK 11+
**Requirements:** JDK 8+ (JDK 11+ recommended)

Add the following to your build tool. Make sure to specify your classifier for your OS.

Expand Down Expand Up @@ -129,7 +127,7 @@ Windows support is currently available only for Valkey-GLIDE Java
</ClientTab>

<ClientTab slot="node">
**Requirements:** Node 16+
**Requirements:** Node.js 20+

```bash
npm install @valkey/valkey-glide
Expand Down
25 changes: 16 additions & 9 deletions src/content/docs/how-to/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,23 @@ The release of Valkey GLIDE was tested on the following platforms:
### Linux

* Ubuntu 20 (x86\_64/amd64 and arm64/aarch64)
* Amazon Linux 2 (AL2) and 2023 (AL2023) (x86\_64)
* Amazon Linux 2 (AL2) and 2023 (AL2023) (x86\_64). The Node.js client does not support AL2; see [Known Issues](/reference/known-issues).

<details>
<summary>`glibc` requirements</summary>
The Node.js client requires `glibc` 2.28 or higher. Check your version with `ldd --version`. See [Known Issues](/reference/known-issues) for supported distributions and the requirements for other clients.
</details>

:::caution
Currently Alpine Linux / MUSL is NOT supported.
:::
### Alpine Linux

Alpine Linux defaults to using MUSL libc. Valkey GLIDE currently supports it as following:

* **Java:** use a `linux_musl-x86_64` or `linux_musl-aarch_64` classifier, or the uber jar.
* **Go:** build with `-tags=musl` (for example, `export GOFLAGS=-tags=musl`).
* **PHP:** on Alpine 3.19+, install the build dependencies listed in the [PHP client README](https://github.com/valkey-io/valkey-glide-php#readme).
* **Ruby & Node.js:** Work out of the box.

Python and C# clients currently do not support Alpine Linux or distro which uses MUSL.

### MacOS

Expand All @@ -114,7 +121,7 @@ Windows support is currently available for Valkey GLIDE Java and C#.

<ClientTabs>
<ClientTab slot="python">
**Requirements:** Python 3.9 to 3.13.
**Requirements:** Python 3.9 to 3.14.

To get started, GLIDE Python is available on [pypi](https://pypi.org/project/valkey-glide/).

Expand All @@ -134,7 +141,7 @@ Windows support is currently available for Valkey GLIDE Java and C#.
</ClientTab>

<ClientTab slot="java">
**Requirements:** JDK 11+
**Requirements:** JDK 8+ (JDK 11+ recommended)

To get started, add one of the following snippet into the build file for your tool.

Expand Down Expand Up @@ -258,12 +265,12 @@ Windows support is currently available for Valkey GLIDE Java and C#.
</ClientTab>

<ClientTab slot="node">
**Requirements:** Node.js 16+
**Requirements:** Node.js 20+

**For npm users on Linux it is recommended to use npm >=11**. It supports optional downloads based on libc. Yarn users should not be concerned.

:::note
The library is dependent on the [protobufjs library](https://protobufjs.github.io/protobuf.js/#installation), which adds size to the package. The package is using the protobufjs/minimal version, hence, if size matters, bundlers should be able to strip the unused code. It should reduce the size of the dependency from 19kb gzipped to 6.5kb gzipped.
The library is dependent on the [protobufjs library](https://protobufjs.github.io/protobuf.js/#installation), which adds size to the package. The package is using the protobufjs/minimal version, hence, if size matters, bundlers should be able to strip the unused code.
:::

To get started, Valkey GLIDE Node.js is available on npm for install.
Expand Down Expand Up @@ -344,7 +351,7 @@ Windows support is currently available for Valkey GLIDE Java and C#.
```

:::note
The gem ships prebuilt native libraries for Linux and macOS, including Alpine Linux / musl (3.18+), and depends on the [`ffi`](https://github.com/ffi/ffi) gem.
The gem ships prebuilt native libraries for Linux (including Alpine Linux / musl 3.18+) and macOS on Apple silicon, and depends on the [`ffi`](https://github.com/ffi/ffi) gem.
:::
</ClientTab>
</ClientTabs>
9 changes: 3 additions & 6 deletions src/content/docs/reference/known-issues.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,13 @@ import { Aside } from '@astrojs/starlight/components';

GLIDE has a native component built as a Rust-based library, which links against the system `glibc`. As a result, GLIDE requires a minimum `glibc` version and is not compatible with older `glibc`-based distributions.

The Node.js client requires **`glibc` 2.28 or higher**. The Python, Java, and Go clients require **`glibc` 2.17 or higher**. Amazon Linux 2 (`glibc` 2.26) is therefore not supported for the Node.js client — it is the previous generation of what [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) runs on (node 18, py \<=11, java \<= 17). This does not affect MUSL-based distros, which are not based on `glibc`.
The Node.js client requires **`glibc` 2.28 or higher**. The Python, Java, Go, C#, and Ruby clients require **`glibc` 2.17 or higher**. Amazon Linux 2 (`glibc` 2.26) is therefore not supported for the Node.js client — it is the previous generation of what [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) runs on (node 18, py \<=11, java \<= 17). This does not affect MUSL-based distros, which are not based on `glibc`.

For every incompatible Linux distribution listed below, there is a newer stable version available, and we recommend using it.

| 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 |
| Ubuntu 18.04 LTS | Ubuntu 22.04 LTS / 24.04 LTS |
| Amazon Linux 2 | Amazon Linux 2023 |

When running on an incompatible system, the client fails to load with an error such as:
Expand All @@ -26,4 +23,4 @@ When running on an incompatible system, the client fails to load with an error s
/lib64/libc.so.6: version `GLIBC_2.28' not found
```

You can check the `glibc` version on your system by running `ldd --version`. For the Node.js client, any `glibc` below `2.28` (for example `2.26` or `2.27`) is not supported; for the Python, Java, and Go clients, any `glibc` below `2.17` is not supported. Progress on broader `glibc` compatibility is tracked in issue [#3291](https://github.com/valkey-io/valkey-glide/issues/3291).
You can check the `glibc` version on your system by running `ldd --version`. For the Node.js client, any `glibc` below `2.28` (for example `2.26` or `2.27`) is not supported; for the Python, Java, Go, C#, and Ruby clients, any `glibc` below `2.17` is not supported. Progress on broader `glibc` compatibility is tracked in issue [#3291](https://github.com/valkey-io/valkey-glide/issues/3291).
Loading