--- title: "Version compatibility" slug: "dev-database-reference-versions" description: "Find the right vastdb Python SDK for your cluster, learn about version compatibility, and explore features for Trino and Spark setups." updated: 2026-10-30T18:18:46Z published: 2026-10-30T18:18:46Z canonical: "docs.vastdata.com/dev-database-reference-versions" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # Version compatibility *Applies to VAST Cluster 5.5. Examples use the VAST DataBase Python SDK 2.1.0.* This page answers three questions: - Which `vastdb` Python SDK can I use with my cluster? - Which SDK features need a newer cluster? - Which Trino and Spark versions go with my cluster? ## Find your versions Run this with the connection environment variables from the [quickstart](/develop/docs/dev-database-quickstart#2-connect): ``` import vastdb session = vastdb.connect() print("SDK:", vastdb.version()) print("Cluster:", ".".join(str(n) for n in session.features.vast_version)) ``` ``` SDK: 2.1.0 Cluster: 5.5.0.1 ``` When you connect, the SDK reads the cluster version from the `Server` header of the cluster's response and keeps it in `session.features.vast_version`. It uses that version to decide which features to allow (see [below](/develop/docs/dev-database-reference-versions#sdk-features-that-need-a-newer-cluster)). If the version string isn't in the format the SDK expects, `connect()` raises `NotImplementedError`; see [errors](/develop/docs/dev-database-troubleshooting-errors#connecting). The cluster reports four numbers, for example `5.5.0.1`. This page writes cluster releases as, for example, 5.5 or 5.0.0-SP10. ## SDK and cluster | SDK (`vastdb`) | Minimum VAST Cluster | Python | | --- | --- | --- | | 2.0.0 – 2.1.0 | 5.0.0-SP10 | 3.10 – 3.13 | | 0.1.7 – 1.5.0 | 5.0.0-SP10 | 3.9 – 3.12 | | 0.1.6 and earlier | Not stated | 3.9 – 3.12 (0.1.x); not stated | The minimum cluster comes from the SDK's README, which has said "`5.0.0-sp10` or later" since 0.1.7. The Python ranges come from each release's package metadata. 2.0.0 dropped official support for Python 3.9 and added 3.13. A newer SDK connects to any cluster in that range. It refuses only the individual features that your cluster is too old for. **Which SDK should I install?** On a 5.5 cluster, install 2.1.0. Partitioned tables need it. ## SDK features that need a newer cluster Before it uses one of these features, the SDK checks the cluster version. If the cluster is too old, it raises `NotSupportedVersion` without sending a request. The messages are listed in [errors](/develop/docs/dev-database-troubleshooting-errors#feature-not-supported-by-your-cluster). The check happens only in the calls listed in the table. | Feature | Checked in (SDK 2.1.0) | Minimum cluster | First SDK release with the feature | | --- | --- | --- | --- | | Partitioned tables | `Session.buffered_inserter()` | 5.5 | 2.1.0 | | Vector-indexed tables | Loading the metadata of a table that has a vector index | 5.5 | 2.0.7; the version check was added in 2.0.14. `vector_search()` arrived in 2.0.3 | | Blob expansion | `create_blob_expansion()`, `blob_expansion()` | 5.5 | 2.0.9; the version check was added by 2.0.12 | | Sorted tables | `add_sorting_key()` | 5.3 (see note) | 1.3.8; use 1.3.9 or later | | Zip import (`ImportConfig.key_names`) | `import_files()` with `key_names` set | 5.3.1 | 1.3.8 | | Imports table | `create_imports_table()`, `imports_table()` | 5.2 | 0.1.3 | | User-defined row IDs | `create_table(use_external_row_ids_allocation=True)` | 5.1 | 0.1.7 | | Choosing a semi-sorted projection | `QueryConfig(semi_sorted_projection_name=...)` | 5.1 | 0.1.6 | **Note on sorted tables:** the SDK's error message says "requires 5.3.5+", but the check in 1.3.9 and later only tests for 5.3 (1.3.8 tested for 5.3.5). Use SDK 1.3.9 or later (see [Sorted tables](/docs-5-5/docs/sorted-tables)). Two more checks are defined in 2.1.0 but never called, so they don't block anything: "Timezone support requires 5.4+" and "Returning row IDs requires 5.1+". On a 5.5 cluster, `Table.columns()` and `reload_schema()` can fetch column names without their types. The SDK does this automatically. ## Connectors and cluster ### Trino The VAST connector for Trino is versioned to match Trino: | Trino | VAST Trino connector | VAST Cluster | | --- | --- | --- | | 478 | 478 | 5.5 | | 475 | 475 | 5.4 and later | | 462 | 462 | 5.3 and later | | 443 | 443 | 5.2 and later | | 429 | 429 | 5.1 and later | | 420 | 420 | 5.0 and later | | 375 | 375 | 4.7 and later | VAST Cluster 5.5.0 also supports Trino 478 query engines. See [Installing and configuring the VAST connector for Trino](/docs-5-5/docs/installing-and-configuring-the-vast-connector-for-trino). ### Spark Versions depend on where Spark runs: | Setup | Spark | Scala | Java | Python | VAST connector | | --- | --- | --- | --- | --- | --- | | Your own Spark cluster ([KB](/docs-5-5/docs/installing-the-vast-connector-for-spark)) | 3.5.1 | 2.13 | 8, 11 or 17 | 3.7+ | Not stated | | Clients of Spark running on the cluster as a managed application ([KB](/docs-5-5/docs/spark-managed-cnode-application)) | 3.4.1, to match the cluster | 2.13 | Not stated | — | `spark3-vast-3.4.1-f93839bfa38a` | These are 5.5 KB pages. ### ADBC driver The ADBC driver runs on Linux x86_64. No driver version or cluster pairing is published. See [VAST Query Engine (ADBC)](/develop/docs/dev-database-integrations-adbc). ## See also - [SDK changelog](https://github.com/vast-data/vastdb_sdk/blob/main/CHANGELOG.md) - [Release notes](/develop/docs/dev-database-release-notes): what changed for practitioners in each cluster release.