---
title: "Client Matrix"
description: "Aerospike client and server version compatibility matrix, EOL schedules, and breaking change documentation."
---

# Client Matrix

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

This page details compatibility between Aerospike client and server versions, and defines the support period for different clients.

Aerospike features rely on the interaction between the client and server. While new server capabilities usually require an updated client API, older clients remain compatible with upgraded clusters—provided they don’t rely on features that have been deprecated and removed.

See [Aerospike Database versioning and releases](https://aerospike.com/docs/database/reference/platform-support/).

## Full client/server feature compatibility

The following matrix shows the minimal version of each client required for full feature compatibility with the given Aerospike Database version.

| Database version | Java | Python | Go | C# | C | Node.js | Rust | _PHP_ | _Ruby_ |
| --- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| 8.1.2 | 10.1.0 | 19.2.0 | 8.7.0 | 8.4.0 | 7.4.0 | \- | \- | \- | \- |
| 8.1.1 | 9.3.0 | 19.0.0 | 8.6.0 | 8.3.0 | 7.3.0 | 6.6.0 | \- | \- | \- |
| 8.1.0 | 9.1.0 | 17.1.0 | 8.4.0 | 8.1.0 | 7.1.0 | 6.3.0 | 2.0.0 | \- | \- |
| 8.0.0 | 9.0.3 | 16.0.1 | 8.0.1 | 8.0.2 | 7.0.2 | 6.0.2 | 2.0.0 | \- | \- |
| 7.2.0 | 8.1.0 | 15.1.0 | 7.2.0 | 7.1.0 | 6.6.0 | 5.12.0 | 2.0.0 | 1.1 | 4.2.0 |
| 7.1.0 | 8.1.0 | 15.0.0 | 7.2.0 | 7.1.0 | 6.6.0 | 5.12.0 | 2.0.0 | 1.1 | 4.2.0 |
| 6.4.0 | 6.1.0 | 11.0.1 | 6.13.0 | 6.0.0 | 6.3.1 | 5.4.0 | 1.3.0 | 1.0 | 4.2.0 |
| 5.7.0 | 5.1.6 | 6.1.0 | 5.10.0 | 4.2.7 | 5.2.8 | 4.0.0 | 1.2.0 | \- | 2.29.0 |

::: note
The PHP and Ruby clients are community supported.
:::

### Language-specific compatibility notes

C

#### Rack Awareness

The C client and the clients that rely on it (Python and Node.js) support a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.

Python

#### Rack Awareness

The Python client relies on the C client, and likewise supports a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.

NodeJS

#### Rack Awareness

The Node.js client relies on the C client, and likewise supports a maximum replication factor (RF) of 3. If you set a higher RF, it accepts the value, but still uses only three replicas. If your client attempts a third replication, the chosen node uses the master instead of using the fourth replica.

Java

#### Specify read consistency options in write operations

The Aerospike Java client has had various properties to specify read consistency options.

In client versions prior to 4.4.0, use the `consistencyLevel` property with the server running in [Available and Partition-tolerant (AP) mode](https://aerospike.com/docs/database/learn/architecture/clustering/consistency-modes/). In client version 4.4.0 and later, `consistencyLevel` was replaced with [`ReadModeAP`](https://javadoc.io/doc/com.aerospike/aerospike-client-jdk21/latest/com/aerospike/client/policy/ReadModeAP.html) for availability mode namespaces, and added a [`ReadModeSC`](https://javadoc.io/doc/com.aerospike/aerospike-client-jdk21/latest/com/aerospike/client/policy/ReadModeSC.html) property for strong consistency mode namespaces.

`WritePolicy` includes `ReadModeAP` because `WritePolicy` inherits all variables from the `Policy` class, which contains `ReadModeAP`. However, `ReadModeAP` only applies to reads, not writes, so all writes (which use `WritePolicy`) ignore `ReadModeAP`.

Specific parameters control write transaction behavior in AP mode.

-   `ReadModeAP` controls duplicate resolution. The possible values are `ALL`, which enables duplicate resolution, and `ONE`, which disables duplicate resolution.
-   `ReadModeSC` controls consistency options in [strong consistency](https://aerospike.com/docs/database/learn/architecture/clustering/consistency-modes/)\-enabled namespaces. The possible values are: `ALLOW_REPLICA`, `ALLOW_UNAVAILABLE`, `LINEARIZE` and `SESSION`.

For write transactions, the server parameter [`disable-write-dup-res`](https://aerospike.com/docs/database/reference/config/#namespace__disable-write-dup-res) controls duplicate resolution. The default is `false`, meaning write duplicate resolution is enabled.

At first glance, the client-side parameter [`commitLevel`](https://javadoc.io/doc/com.aerospike/aerospike-client-jdk21/latest/com/aerospike/client/policy/CommitLevel.html) appears similar in nature to `disable-write-dup-res`. However, this is not the case. Unlike `disable-write-dup-res`, which controls behavior during migration, `commitLevel` and the server side [`write-commit-level-override`](https://aerospike.com/docs/database/reference/config/#namespace__write-commit-level-override) determine when the server acknowledges a successful write. By default, the server waits until replica writes are complete. However, you can switch to “fire and forget” mode where the server returns success as soon as the master write is complete. See [`write-commit-level-override`](https://aerospike.com/docs/database/reference/config/#namespace__write-commit-level-override) for more details.

::: note
-   All changes in the Aerospike Java Client API are listed in [Incompatible API Changes](https://aerospike.com/docs/develop/client/java/incompatible/).
-   `ReadModeSC` presents options in terms of ‘relaxed reads’ which give you granular control over when a client read may be permitted, and which copy is read.

In a strong-consistency namespace:

-   Duplicate resolution always takes place. This is not configurable.
-   `commitLevel` and `write-commit-level-override` do not apply.
:::

## Minimum usable client versions

The following matrix shows the minimal client version that ensures non-breaking operation against the given server version. Applications using older client versions may still work, if they do not use developer API functionality affected by the [breaking changes](#major-server-changes) specified below.

| Database version | Java | Python | Go | C# | C | Node.js | Rust | _PHP_ | _Ruby_ |
| --- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| 8.1.2 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 7.0.2 | 5.0.3 | 2.0.0 | 1.0.0 | 4.2.0 |
| 8.1.1 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 7.0.2 | 5.0.3 | 2.0.0 | 1.0.0 | 4.2.0 |
| 8.1.0 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 7.0.2 | 5.0.3 | 2.0.0 | 1.0.0 | 4.2.0 |
| 8.0.0 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 7.0.2 | 5.0.3 | 2.0.0 | 1.0.0 | 4.2.0 |
| 7.2.0 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 6.1.1 | 5.0.3 | 2.0.0 | 1.0.0 | 3.0.0 |
| 7.1.0 | 6.0.0 | 7.0.2 | 7.0.0 | 5.1.0 | 6.1.1 | 5.0.3 | 2.0.0 | 1.0.0 | 3.0.0 |
| 6.4.0 | 6.0.0 | 7.0.2 | 6.10.0 | 5.1.0 | 6.1.1 | 5.0.3 | 1.3.0 | 1.0.0 | 3.0.0 |
| 5.7.0 | 4.4.2 | 6.0.0 | 4.2.0 | 3.9.15 | 4.6.24 | 3.16.7 | 1.2.0 | 1.0.0 | 2.29.0 |
| 4.9.0 | 3.3.3 | 3.1.1 | 1.38 | 3.13 | 4.5.0 | 3.9.0 | 1.2.0 | \- | 2.29.0 |

::: note
The PHP and Ruby clients are community supported.
:::

### Major server changes

| Server version | Breaking change |
| --- | --- |
| 7.0.0 | Go client versions before 7.0.0 working with Database 7.0.0 unexpectedly interpret integers larger than 2^32 as `uint64` instead of `int32`. Use Go client version 7.0.0 or later with Database 7.0.0 and later. |
| 6.4.0 | Removed the deprecated [info commands](https://aerospike.com/docs/database/reference/info) for scan, `scan-show`, `scan-abort`, and `scan-abort-all`. Use the equivalent query commands, `query-show`, `query-abort`, and `query-abort-all`. |
| 6.3.0 | Removed the `jobs:` info command. |
| 6.0.0 | Removed predicate expressions (PredExp). |
| 5.6.0 | Removed scan policies `percent`, `failOnClusterChange`, and `priority`. |
| 4.9.0 | Client applications must support the new style `truncate` command, and the [`batch-index`](https://aerospike.com/docs/database/manage/cluster/batches) protocol for batch operations. |
| 4.4.0 | Removed support for `batch-direct`. |

## Client versioning and support

Aerospike clients use [semantic versioning](https://semver.org/) for their releases. The version format is `major.minor.patch` (for example, Java client 9.1.0):

The following tables show the release dates and end-of-life (EOL) dates for each major version of Aerospike’s officially supported clients. All minor and patch releases within a major version share the same EOL date as their parent major version.

See [Product Stages](https://aerospike.com/docs/database/reference/product-stages/) for an explanation of General Availability (GA) and EOL.

::: note
Bug fixes and security patches are provided on the latest minor release of each supported major version. Earlier minor releases stop receiving patches when a newer minor version becomes available. For more information, see the [Aerospike Support Policy](https://aerospike.com/legal/aerospike-support-policy/).
:::

### Java Client

-   [View Java Client releases on GitHub](https://github.com/aerospike/aerospike-client-java/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/java/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 10.x.x | 2026-03-11 | 2029-03-11 |
| 9.x.x | 2024-11-19 | 2027-11-19 |
| 8.x.x | 2024-01-05 | 2027-01-05 |
| 7.x.x | 2023-08-02 | 2026-08-02 |
| 6.x.x | 2022-03-31 | 2025-03-31 |
| 5.x.x | 2020-10-21 | 2023-10-21 |
| 4.x.x | 2017-05-22 | 2020-05-22 |
| 3.x.x | 2014-03-14 | 2017-03-14 |

### Python Client

-   [View Python Client releases on GitHub](https://github.com/aerospike/aerospike-client-python/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/python/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 19.x.x | 2026-02-06 | 2029-02-06 |
| 18.x.x | 2025-10-01 | 2028-10-01 |
| 17.x.x | 2025-05-05 | 2028-05-05 |
| 16.x.x | 2024-12-16 | 2027-12-16 |
| 15.x.x | 2024-04-09 | 2027-04-09 |
| 14.x.x | 2023-11-14 | 2026-11-14 |
| 13.x.x | 2023-08-21 | 2026-08-21 |
| 12.x.x | 2023-07-28 | 2026-07-28 |
| 11.x.x | 2023-03-27 | 2026-03-27 |
| 10.x.x | 2023-01-27 | 2026-01-27 |
| 9.x.x | 2023-01-04 | 2026-01-04 |
| 8.x.x | 2022-11-18 | 2025-11-18 |
| 7.x.x | 2022-04-07 | 2025-04-07 |
| 6.x.x | 2021-05-10 | 2024-05-10 |
| 5.x.x | 2021-02-17 | 2024-02-17 |
| 4.x.x | 2020-09-24 | 2023-09-24 |
| 3.x.x | 2018-01-10 | 2021-01-10 |
| 2.x.x | 2016-02-16 | 2019-02-16 |
| 1.x.x | 2014-07-15 | 2017-07-15 |

### Go Client

-   [View Go Client releases on GitHub](https://github.com/aerospike/aerospike-client-go/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/go/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 8.x.x | 2025-01-22 | 2028-01-22 |
| 7.x.x | 2023-12-14 | 2026-12-14 |
| 6.x.x | 2022-04-07 | 2025-04-07 |
| 5.x.x | 2021-05-11 | 2024-05-11 |
| 4.x.x | 2020-11-27 | 2023-11-27 |
| 3.x.x | 2020-06-08 | 2023-06-08 |
| 2.x.x | 2019-03-20 | 2022-03-20 |
| 1.x.x | 2014-08-28 | 2019-08-28 |

### C# Client

-   [View C# Client releases on GitHub](https://github.com/aerospike/aerospike-client-csharp/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/csharp/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 8.x.x | 2024-12-06 | 2027-12-06 |
| 7.x.x | 2023-12-08 | 2026-12-08 |
| 6.x.x | 2023-02-03 | 2026-02-03 |
| 5.x.x | 2022-03-31 | 2025-03-31 |
| 4.x.x | 2020-10-21 | 2023-10-21 |
| 3.x.x | 2013-11-20 | 2016-11-20 |

### C Client

-   [View C Client releases on GitHub](https://github.com/aerospike/aerospike-client-c/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/c/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 7.x.x | 2024-12-06 | 2027-12-06 |
| 6.x.x | 2022-03-31 | 2025-03-31 |
| 5.x.x | 2020-10-21 | 2023-10-21 |
| 4.x.x | 2016-01-14 | 2019-01-14 |

### Node.js Client

-   [View Node.js Client releases on GitHub](https://github.com/aerospike/aerospike-client-nodejs/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/node/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 6.x.x | 2024-12-23 | 2027-12-23 |
| 5.x.x | 2022-05-01 | 2025-05-01 |
| 4.x.x | 2022-03-14 | 2025-03-14 |
| 3.x.x | 2017-10-03 | 2020-10-03 |
| 2.x.x | 2016-04-19 | 2019-04-19 |
| 1.x.x | 2014-02-11 | 2017-02-11 |

### Rust Client

-   [View Rust Client releases on GitHub](https://github.com/aerospike/aerospike-client-rust/releases)
-   [Incompatible API changes](https://aerospike.com/docs/develop/client/rust/incompatible/)

| Major Version | Initial Release Date | End of Life Date |
| --- | --- | --- |
| 2.x.x | 2026-04-06 | 2029-04-06 |

::: note
These schedules are updated as new major versions are released. For the most current information, refer to each client’s release page.
:::