> ## Documentation Index
> Fetch the complete documentation index at: https://docs.westyx.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK Overview

> Pick the right SDK for your stack. All SDKs share the same core contract.

## SDK matrix

| SDK                              | Language       | Use case               | Package                                      |
| -------------------------------- | -------------- | ---------------------- | -------------------------------------------- |
| [Go](/sdks/go)                   | Go 1.26+       | Backend services       | `gitlab.com/westyx/nexus/sdk/go`             |
| [Node.js](/sdks/nodejs)          | Node 18+       | Backend / SSR          | `@westyx-nexus/sdk-nodejs`                   |
| [Python](/sdks/python)           | Python 3.10+   | Backend services       | `westyx-nexus-sdk`                           |
| [.NET](/sdks/dotnet)             | .NET 10        | Backend services       | `WestyxNexus` (NuGet)                        |
| [Spring Boot](/sdks/spring-boot) | Java 17+       | Spring Boot services   | `dev.westyx.nexus:nexus-spring-boot-starter` |
| [Kotlin](/sdks/kotlin)           | Kotlin/JVM 17+ | Backend / JVM services | `dev.westyx.nexus:nexus-kotlin-sdk`          |
| [PHP](/sdks/php)                 | PHP 8.1+       | Backend services       | `westyx/nexus` (Composer)                    |
| [Rust](/sdks/rust)               | Rust 1.75+     | Backend services       | `westyx-nexus` (crates.io)                   |
| [Angular](/sdks/angular)         | Angular 17+    | Browser apps           | `@westyx-nexus/sdk-angular`                  |
| [React](/sdks/react)             | React 18+      | Browser apps           | `@westyx-nexus/sdk-react`                    |
| [Vue](/sdks/vue)                 | Vue 3.3+       | Browser apps           | `@westyx-nexus/sdk-vue`                      |

## Choosing an SDK

<CardGroup cols={2}>
  <Card title="Backend service" icon="server">
    Use Go, Node.js, Python, .NET, Spring Boot, Kotlin, PHP, or Rust. Backend services use secret keys (backend services only) and have access to **secrets, configs, and flags**. Workload Identity Federation (WIF) is supported on all backend SDKs.
  </Card>

  <Card title="Frontend / browser" icon="browser">
    Use Angular, React, or Vue. Browser SDKs use public keys (browser/frontend, safe to expose) and have access to **configs and flags only**. Secrets are never sent to the browser.
  </Card>
</CardGroup>

## Shared behaviour across all SDKs

All backend SDKs implement the same core contract:

* **TTL-based cache** - initial sync populates the cache; background refresh keeps it current without blocking callers
* **ETag / 304** - unchanged data resets the TTL without re-downloading the full payload
* **SSE live updates** - value changes propagate within milliseconds; falls back to TTL polling after 3 transport errors
* **402 handling** - when billing is blocked, background sync halts and the cached values are served until resolved
* **Quarantine handling** - 429 with quarantine body pauses sync until `expiresAt`; stream reconnects without counting as a transport failure
* **Service kind enforcement** - `GetSecret` is blocked with an error on `kind=frontend` services regardless of key type
* **Write API** *(v0.5.0)* - `SetSecret`, `DeleteSecret`, `DeleteSecretVersion` on all backend SDKs; public keys are rejected before the network call

## Versioning

All SDKs are at **v0.6.0**.

<Info>
  The PHP package (`westyx/nexus`) requires a Composer repository entry. See the [PHP SDK installation guide](/sdks/php/installation) for the full setup.
</Info>
