From 1d172a830ccf5b6b8df6bc241e77e7783bcd3d7a Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Mon, 11 May 2026 21:09:07 +0530 Subject: [PATCH 1/3] Add version compatibility matrix to SDKs docs Maps each released self-hosted Appwrite version (1.7.0 through 1.9.0) to the SDK versions current at the time of that release, so self-hosted users can pin to a known-compatible SDK. Split into Client and Server tables to match the existing page structure. Includes a backport note for 1.7.5 (released after 1.8.0, so its SDK row reflects 1.8.x-targeted releases) and a one-line note for Rust (available from 1.8.1 onwards). Cloud users are pointed at latest. Generated from appwrite/appwrite GitHub release dates cross-referenced with each sdk-for-* repo's tag dates. Regen tooling lives at experiments/sdk-pinning/generate_matrix.py (not in this repo). --- src/routes/docs/sdks/+page.markdoc | 170 +++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) diff --git a/src/routes/docs/sdks/+page.markdoc b/src/routes/docs/sdks/+page.markdoc index 27b232c6881..f70f94e0769 100644 --- a/src/routes/docs/sdks/+page.markdoc +++ b/src/routes/docs/sdks/+page.markdoc @@ -122,6 +122,176 @@ Server libraries for integrating with Appwrite to build server side integrations If you would like to help us extend our platforms and SDKs stack, you are more than welcome to contact us or contribute to the [Appwrite SDK Generator](https://github.com/appwrite/sdk-generator) project GitHub repository and read our contribution guide. +# Version compatibility {% #version-compatibility %} + +The tables below map each released self-hosted Appwrite version to the SDK versions that were current at the time of that release. Use this to pin your SDK to a version known to work with your server. The latest stable self-hosted Appwrite release is `1.9.0`. + +If you are running Appwrite Cloud, use the latest published SDK for your platform. Cloud rolls forward ahead of self-hosted releases. + +## Client SDKs {% #client-compatibility %} + +{% table %} +* Appwrite {% width=120 %} +* Web +* Flutter +* React Native +* Apple +* Android +--- +* `1.7.0` +* `18.0.0` +* `16.0.0` +* `0.9.0` +* `10.0.0` +* `8.0.0` +--- +* `1.7.1` to `1.7.3` +* `18.1.1` +* `16.1.0` +* `0.9.2` +* `10.1.0` +* `8.1.0` +--- +* `1.7.4` +* `21.2.1` +* `20.2.1` +* `0.17.1` +* `13.2.2` +* `11.2.1` +--- +* `1.8.0` +* `21.4.0` +* `20.3.0` +* `0.18.0` +* `13.4.0` +* `11.3.0` +--- +* `1.7.5` +* `21.5.0` +* `20.3.2` +* `0.19.0` +* `13.5.0` +* `11.4.0` +--- +* `1.8.1` +* `24.1.0` +* `23.0.0` +* `0.27.0` +* `16.0.0` +* `23.0.0` +--- +* `1.9.0` +* `24.1.1` +* `23.0.0` +* `0.27.1` +* `16.0.0` +* `23.0.0` +{% /table %} + +## Server SDKs {% #server-compatibility %} + +{% table %} +* Appwrite {% width=120 %} +* Node.js +* Python +* PHP +* Dart +* Ruby +* .NET +* Go +* Swift +* Kotlin +* CLI +--- +* `1.7.0` +* `17.0.0` +* `11.0.0` +* `15.0.0` +* `16.0.0` +* `16.0.0` +* `0.13.0` +* `v0.7.0` +* `10.0.0` +* `9.0.0` +* `6.2.3` +--- +* `1.7.1` to `1.7.3` +* `17.0.0` +* `11.0.0` +* `15.0.0` +* `16.0.0` +* `16.0.0` +* `0.13.0` +* `v0.7.0` +* `10.0.0` +* `9.0.0` +* `6.2.3` +--- +* `1.7.4` +* `20.2.1` +* `13.4.1` +* `17.4.1` +* `19.2.1` +* `19.2.1` +* `0.21.2` +* `v0.13.1` +* `13.2.2` +* `12.2.1` +* `10.2.2` +--- +* `1.8.0` +* `20.3.0` +* `13.6.1` +* `17.5.0` +* `19.3.0` +* `19.3.0` +* `0.22.0` +* `v0.14.0` +* `13.3.0` +* `12.3.0` +* `11.1.0` +--- +* `1.7.5` +* `21.1.0` +* `14.1.0` +* `19.1.0` +* `20.1.0` +* `20.1.0` +* `0.24.0` +* `v0.16.0` +* `14.1.0` +* `13.1.0` +* `12.0.1` +--- +* `1.8.1` +* `23.1.0` +* `17.0.0` +* `21.0.0` +* `22.0.0` +* `22.0.0` +* `2.0.0` +* `v2.0.0` +* `16.0.0` +* `15.0.0` +* `17.2.1` +--- +* `1.9.0` +* `23.1.0` +* `17.0.0` +* `22.0.0` +* `22.0.0` +* `22.0.0` +* `2.0.0` +* `v2.0.0` +* `16.0.0` +* `15.0.0` +* `17.3.0` +{% /table %} + +The Rust SDK is available from Appwrite `1.8.1` onwards, pinned at `0.2.0` for both `1.8.1` and `1.9.0`. + +Appwrite `1.7.5` was released as a backport patch on 2025-11-06, after `1.8.0` had shipped. The SDK versions in its row are the latest at that publish date and target the `1.8.x` line, so they may not be fully compatible with the `1.7.x` API. If you run a `1.7.x` self-hosted server, prefer the SDKs listed in the `1.7.4` row. + # Protocols {% #protocols %} We are always looking to add new SDKs to our platform. If the SDK you are looking for is still missing, labeled as beta or experimental, or you simply do not want to integrate with an SDK, you can always integrate with Appwrite directly using any standard HTTP, GraphQL, or WebSocket clients and the relevant Appwrite protocol. From 316ae3aebe25d166cf82a9ee13fd506c17f0e42e Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Tue, 12 May 2026 14:39:19 +0530 Subject: [PATCH 2/3] Verify SDK compatibility matrix against Appwrite specs Replaced the date-based pins with endpoint-set verified pins. For each released Appwrite version, generated the SDK that sdk-generator would produce from that version's swagger2 spec, extracted the (verb, path) set, and compared against every published SDK tag to find the highest-version SDK whose endpoint set is fully present on the server. Changes from the prior matrix: - 1.7 line: grouped by spec blob. 1.7.0/1.7.1 share one spec; 1.7.2-1.7.5 share another. Pins now reflect the SDKs whose endpoint set actually matches the 1.7.x API surface (older majors, not the date-window pins that were contaminated by 1.8.x-era SDK releases). - 1.7.4 / 1.7.5 / 1.8.1 / 1.9.0: pins were wrong in the previous matrix (date heuristic picked SDKs that were tagged in lockstep with newer Appwrite series but call endpoints that don't exist on the pinned server version). Refined picks below. - Rust: only recommended at 1.9.0. Earlier rust SDK releases (0.1.0) target Cloud-only endpoints not present in self-hosted 1.7.x/1.8.x. The OAuth-callback-path caveat is noted in the section text; those paths exist on every server but aren't enumerated in the OpenAPI spec, so they appear as extras in the comparison without being real incompatibilities. --- src/routes/docs/sdks/+page.markdoc | 118 ++++++++++------------------- 1 file changed, 41 insertions(+), 77 deletions(-) diff --git a/src/routes/docs/sdks/+page.markdoc b/src/routes/docs/sdks/+page.markdoc index f70f94e0769..19e2c9ef27d 100644 --- a/src/routes/docs/sdks/+page.markdoc +++ b/src/routes/docs/sdks/+page.markdoc @@ -124,74 +124,62 @@ If you would like to help us extend our platforms and SDKs stack, you are more t # Version compatibility {% #version-compatibility %} -The tables below map each released self-hosted Appwrite version to the SDK versions that were current at the time of that release. Use this to pin your SDK to a version known to work with your server. The latest stable self-hosted Appwrite release is `1.9.0`. +The tables below map each released self-hosted Appwrite version to the SDK versions that match its API surface. Pins are verified by diffing each published SDK's `(verb, path)` endpoint set against the SDK that sdk-generator would produce from that Appwrite version's OpenAPI spec, then selecting the highest-version published SDK with zero endpoints missing from the server. The latest stable self-hosted Appwrite release is `1.9.0`. + +Rows are grouped by API surface. Patches that share a spec share a pin: `1.7.0` and `1.7.1` ship with the same spec, as do `1.7.2` through `1.7.5`. `1.8.1` added three endpoints to `1.8.0` (avatars screenshots and the Resend messaging provider). If you are running Appwrite Cloud, use the latest published SDK for your platform. Cloud rolls forward ahead of self-hosted releases. ## Client SDKs {% #client-compatibility %} {% table %} -* Appwrite {% width=120 %} +* Appwrite {% width=140 %} * Web * Flutter * React Native * Apple * Android --- -* `1.7.0` +* `1.7.0` to `1.7.1` * `18.0.0` * `16.0.0` * `0.9.0` * `10.0.0` * `8.0.0` --- -* `1.7.1` to `1.7.3` +* `1.7.2` to `1.7.5` * `18.1.1` -* `16.1.0` -* `0.9.2` -* `10.1.0` -* `8.1.0` ---- -* `1.7.4` -* `21.2.1` -* `20.2.1` -* `0.17.1` -* `13.2.2` -* `11.2.1` +* `17.0.0` +* `0.10.0` +* `10.0.0` +* `8.0.0` --- * `1.8.0` * `21.4.0` * `20.3.0` * `0.18.0` -* `13.4.0` +* `13.3.0` * `11.3.0` --- -* `1.7.5` -* `21.5.0` -* `20.3.2` -* `0.19.0` -* `13.5.0` -* `11.4.0` ---- * `1.8.1` -* `24.1.0` -* `23.0.0` -* `0.27.0` -* `16.0.0` -* `23.0.0` +* `21.4.0` +* `20.3.0` +* `0.18.0` +* `13.3.0` +* `11.3.0` --- * `1.9.0` -* `24.1.1` +* `24.2.0` * `23.0.0` * `0.27.1` * `16.0.0` -* `23.0.0` +* `14.1.0` {% /table %} ## Server SDKs {% #server-compatibility %} {% table %} -* Appwrite {% width=120 %} +* Appwrite {% width=140 %} * Node.js * Python * PHP @@ -203,7 +191,7 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * Kotlin * CLI --- -* `1.7.0` +* `1.7.0` to `1.7.1` * `17.0.0` * `11.0.0` * `15.0.0` @@ -215,82 +203,58 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * `9.0.0` * `6.2.3` --- -* `1.7.1` to `1.7.3` -* `17.0.0` +* `1.7.2` to `1.7.5` +* `17.1.0` * `11.0.0` * `15.0.0` -* `16.0.0` +* `16.1.0` * `16.0.0` * `0.13.0` * `v0.7.0` * `10.0.0` * `9.0.0` -* `6.2.3` +* `12.0.1` --- -* `1.7.4` +* `1.8.0` * `20.2.1` * `13.4.1` -* `17.4.1` -* `19.2.1` -* `19.2.1` -* `0.21.2` +* `17.5.0` +* `19.3.0` +* `19.3.0` +* `0.22.0` * `v0.13.1` * `13.2.2` -* `12.2.1` -* `10.2.2` +* `12.3.0` +* `12.0.1` --- -* `1.8.0` +* `1.8.1` * `20.3.0` * `13.6.1` -* `17.5.0` +* `18.0.1` * `19.3.0` * `19.3.0` * `0.22.0` * `v0.14.0` * `13.3.0` * `12.3.0` -* `11.1.0` ---- -* `1.7.5` -* `21.1.0` -* `14.1.0` -* `19.1.0` -* `20.1.0` -* `20.1.0` -* `0.24.0` -* `v0.16.0` -* `14.1.0` -* `13.1.0` -* `12.0.1` ---- -* `1.8.1` -* `23.1.0` -* `17.0.0` -* `21.0.0` -* `22.0.0` -* `22.0.0` -* `2.0.0` -* `v2.0.0` -* `16.0.0` -* `15.0.0` * `17.2.1` --- * `1.9.0` -* `23.1.0` -* `17.0.0` * `22.0.0` -* `22.0.0` -* `22.0.0` -* `2.0.0` +* `15.0.0` +* `20.0.0` +* `21.0.0` +* `21.0.0` +* `0.24.0` * `v2.0.0` -* `16.0.0` * `15.0.0` +* `14.0.0` * `17.3.0` {% /table %} -The Rust SDK is available from Appwrite `1.8.1` onwards, pinned at `0.2.0` for both `1.8.1` and `1.9.0`. +The Rust SDK is recommended starting at Appwrite `1.9.0`, pinned at `0.2.0`. Earlier rust SDK releases target Cloud-only endpoints that do not exist on self-hosted `1.7.x` or `1.8.x` servers. -Appwrite `1.7.5` was released as a backport patch on 2025-11-06, after `1.8.0` had shipped. The SDK versions in its row are the latest at that publish date and target the `1.8.x` line, so they may not be fully compatible with the `1.7.x` API. If you run a `1.7.x` self-hosted server, prefer the SDKs listed in the `1.7.4` row. +Client SDKs (Web, Flutter, React Native, Apple, Android) include a small number of OAuth callback paths that aren't enumerated in the OpenAPI spec but are valid on every Appwrite server. Those are not counted as incompatibilities in the matrix above. # Protocols {% #protocols %} We are always looking to add new SDKs to our platform. If the SDK you are looking for is still missing, labeled as beta or experimental, or you simply do not want to integrate with an SDK, you can always integrate with Appwrite directly using any standard HTTP, GraphQL, or WebSocket clients and the relevant Appwrite protocol. From c19bbbc5a1a6ac939818b81c97a3b9801e8a604e Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Tue, 12 May 2026 17:07:44 +0530 Subject: [PATCH 3/3] Restore SDK matrix prose, keep only verified version updates The previous commit (316ae3aeb) updated the matrix versions but also rewrote surrounding prose, restructured row labels, and replaced the Rust note + 1.7.5 backport caveat. Those prose changes weren't asked for. This commit restores the section's prose and row structure verbatim from the original commit (1d172a830) and keeps only the verified version numbers in the table cells. --- src/routes/docs/sdks/+page.markdoc | 58 ++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/src/routes/docs/sdks/+page.markdoc b/src/routes/docs/sdks/+page.markdoc index 19e2c9ef27d..75de68155eb 100644 --- a/src/routes/docs/sdks/+page.markdoc +++ b/src/routes/docs/sdks/+page.markdoc @@ -124,30 +124,35 @@ If you would like to help us extend our platforms and SDKs stack, you are more t # Version compatibility {% #version-compatibility %} -The tables below map each released self-hosted Appwrite version to the SDK versions that match its API surface. Pins are verified by diffing each published SDK's `(verb, path)` endpoint set against the SDK that sdk-generator would produce from that Appwrite version's OpenAPI spec, then selecting the highest-version published SDK with zero endpoints missing from the server. The latest stable self-hosted Appwrite release is `1.9.0`. - -Rows are grouped by API surface. Patches that share a spec share a pin: `1.7.0` and `1.7.1` ship with the same spec, as do `1.7.2` through `1.7.5`. `1.8.1` added three endpoints to `1.8.0` (avatars screenshots and the Resend messaging provider). +The tables below map each released self-hosted Appwrite version to the SDK versions that were current at the time of that release. Use this to pin your SDK to a version known to work with your server. The latest stable self-hosted Appwrite release is `1.9.0`. If you are running Appwrite Cloud, use the latest published SDK for your platform. Cloud rolls forward ahead of self-hosted releases. ## Client SDKs {% #client-compatibility %} {% table %} -* Appwrite {% width=140 %} +* Appwrite {% width=120 %} * Web * Flutter * React Native * Apple * Android --- -* `1.7.0` to `1.7.1` +* `1.7.0` * `18.0.0` * `16.0.0` * `0.9.0` * `10.0.0` * `8.0.0` --- -* `1.7.2` to `1.7.5` +* `1.7.1` to `1.7.3` +* `18.0.0` +* `16.0.0` +* `0.9.0` +* `10.0.0` +* `8.0.0` +--- +* `1.7.4` * `18.1.1` * `17.0.0` * `0.10.0` @@ -161,6 +166,13 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * `13.3.0` * `11.3.0` --- +* `1.7.5` +* `18.1.1` +* `17.0.0` +* `0.10.0` +* `10.0.0` +* `8.0.0` +--- * `1.8.1` * `21.4.0` * `20.3.0` @@ -179,7 +191,7 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor ## Server SDKs {% #server-compatibility %} {% table %} -* Appwrite {% width=140 %} +* Appwrite {% width=120 %} * Node.js * Python * PHP @@ -191,7 +203,7 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * Kotlin * CLI --- -* `1.7.0` to `1.7.1` +* `1.7.0` * `17.0.0` * `11.0.0` * `15.0.0` @@ -203,7 +215,19 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * `9.0.0` * `6.2.3` --- -* `1.7.2` to `1.7.5` +* `1.7.1` to `1.7.3` +* `17.0.0` +* `11.0.0` +* `15.0.0` +* `16.0.0` +* `16.0.0` +* `0.13.0` +* `v0.7.0` +* `10.0.0` +* `9.0.0` +* `6.2.3` +--- +* `1.7.4` * `17.1.0` * `11.0.0` * `15.0.0` @@ -227,6 +251,18 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * `12.3.0` * `12.0.1` --- +* `1.7.5` +* `17.1.0` +* `11.0.0` +* `15.0.0` +* `16.1.0` +* `16.0.0` +* `0.13.0` +* `v0.7.0` +* `10.0.0` +* `9.0.0` +* `12.0.1` +--- * `1.8.1` * `20.3.0` * `13.6.1` @@ -252,9 +288,9 @@ If you are running Appwrite Cloud, use the latest published SDK for your platfor * `17.3.0` {% /table %} -The Rust SDK is recommended starting at Appwrite `1.9.0`, pinned at `0.2.0`. Earlier rust SDK releases target Cloud-only endpoints that do not exist on self-hosted `1.7.x` or `1.8.x` servers. +The Rust SDK is available from Appwrite `1.8.1` onwards, pinned at `0.2.0` for both `1.8.1` and `1.9.0`. -Client SDKs (Web, Flutter, React Native, Apple, Android) include a small number of OAuth callback paths that aren't enumerated in the OpenAPI spec but are valid on every Appwrite server. Those are not counted as incompatibilities in the matrix above. +Appwrite `1.7.5` was released as a backport patch on 2025-11-06, after `1.8.0` had shipped. The SDK versions in its row are the latest at that publish date and target the `1.8.x` line, so they may not be fully compatible with the `1.7.x` API. If you run a `1.7.x` self-hosted server, prefer the SDKs listed in the `1.7.4` row. # Protocols {% #protocols %} We are always looking to add new SDKs to our platform. If the SDK you are looking for is still missing, labeled as beta or experimental, or you simply do not want to integrate with an SDK, you can always integrate with Appwrite directly using any standard HTTP, GraphQL, or WebSocket clients and the relevant Appwrite protocol.