---
title: "Version compatibility"
description: "Aerospike SDK and server version compatibility matrix, language requirements, and feature availability guide."
---

# Version compatibility

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

## Applies to

-   Aerospike Developer SDK (Java 21+ and Python 3.11+)
-   Aerospike Database 6.0 or later unless a section states otherwise

::: code examples
Examples assume a connected `session` from [Connect to Aerospike](https://aerospike.com/docs/develop/client/sdk/connect). Each usage guide lists shared imports in a tabbed block near the top of the page; snippet blocks add imports only for types not already shown. The first code block in each section includes dataset setup; later blocks in that section reuse those values. When a page includes a **Complete example** section, that block is fully self-contained.
:::

This page documents which Developer SDK versions are compatible with which Aerospike Server versions.

::: note
The matrix will expand as new releases ship. Use [Known issues](https://aerospike.com/docs/develop/client/sdk/reference/known-issues) for current limitations.
:::

## Client ↔ server compatibility

| Developer SDK | Aerospike Server | Java Version | Python Version |
| --- | --- | --- | --- |
| Python | 8.2.0+ | — | 3.11–3.14 |
| Java | 6.0+ | 21+ | — |

## Feature availability by server version

| Feature | Min Server Version | Notes |
| --- | --- | --- |
| AEL filter expressions (`.where(...)`) | 8.2.0.0 | AEL is compiled and parsed on the server; set queries also require a secondary index |
| Extended read ops on filtered set queries (Python) | 8.1.2 | CDT, expression, bit, and HLL read ops — see [Read](https://aerospike.com/docs/develop/client/sdk/usage/read) |
| AEL operation expressions (`selectFrom`, `upsertFrom`, `insertFrom`, `updateFrom`) | 8.2.0.0 | Read projection and write-side compute via AEL text |
| Batch Writes | 6.0 |  |
| Strong Consistency | 5.6+ | Requires SC namespace |
| Multi-record transactions (MRT) | 8.0+ | SC namespace required |
| GeoJSON bins and GEO2DSPHERE indexes | 6.0+ |  |
| HyperLogLog (HLL) bins | 6.0+ |  |

## Checking your versions

-   [Java](#tab-panel-5146)
-   [Python](#tab-panel-5147)

```java
import com.aerospike.client.sdk.Cluster;

import com.aerospike.client.sdk.ClusterDefinition;

import com.aerospike.client.sdk.util.Version;

// Client library version (from the JAR manifest)

ClusterDefinition def = new ClusterDefinition("localhost", 3000);

System.out.println("Developer SDK: " + def.getClientVersion());

// Minimum server version seen across the cluster (after connect)

try (Cluster cluster = def.connect()) {

    Version v = cluster.getVersion();

    System.out.println("Cluster server version (min): " + (v != null ? v : "n/a"));

}
```

> 📖 **API reference**: [`ClusterDefinition(String,int)`](https://javadoc.io/doc/com.aerospike/aerospike-client-sdk/latest/com/aerospike/client/sdk/ClusterDefinition.html#%3Cinit%3E%28java.lang.String%2Cint%29) | [`ClusterDefinition.connect()`](https://javadoc.io/doc/com.aerospike/aerospike-client-sdk/latest/com/aerospike/client/sdk/ClusterDefinition.html#connect%28%29) | [`Cluster.close()`](https://javadoc.io/doc/com.aerospike/aerospike-client-sdk/latest/com/aerospike/client/sdk/Cluster.html#close%28%29)

```python
import aerospike_sdk

# Check client version

print(f"Developer SDK: {aerospike_sdk.__version__}")

# Check server version

# version = client.info("version")

# print(f"Server: {version}")
```

## Next steps

-   [Installation Guide](https://aerospike.com/docs/develop/client/sdk/install)
-   [Quickstart](https://aerospike.com/docs/develop/client/sdk/quickstart)