Skip to main content
The Rust SDK is published to crates.io as westyx-nexus. There is no custom registry - cargo resolves the crate directly from crates.io.

Install

Or add it manually:
Then import it:

Features

A default build carries neither, so it pulls no AWS dependency and creates no runtime of its own.

Requirements

  • Rust 1.88 or newer. The floor is measured against the crate’s real dependency set and the language features it uses, and a CI job builds and tests with exactly that toolchain on every pipeline.
  • Network access to crates.io (or a mirror) at build time, and to <your-slug>.api.westyx.dev at runtime.
With aws-iam enabled, the AWS crates resolve against the same floor. The SDK repository sets resolver.incompatible-rust-versions = "fallback"; add the same option to your .cargo/config.toml if you enable that feature while pinning an older toolchain, so the newest AWS releases - which require a far newer compiler - are not selected for you.

TLS

TLS is rustls, reqwest 0.13’s default backend, so the SDK has no OpenSSL system dependency and certificate verification uses the platform trust store.

Dependencies

The SDK brings in a focused set: With aws-iam: aws-config, aws-credential-types, aws-sigv4, aws-smithy-runtime-api.

Async and blocking

The client is async. In an axum or actix handler, clone it and use it directly:
Cache reads (get_config, get_flag, get_secret, …) are synchronous because they read in-memory state; they never block on the network, so no spawn_blocking wrapper is needed - if you have one from v0.10.x, remove it. Without a runtime of your own, enable the blocking feature:
The blocking client owns a small runtime on its own threads, so its calls also work from inside someone else’s runtime.

OpenFeature provider

See OpenFeature.

Verifying installation

Verifying connectivity

A valid response returns a JSON snapshot with your configs, secrets and flags. An HTTP 401 means the key is wrong; HTTP 404 means the slug is wrong. To watch the live SSE stream:
You should see event:resync arrive within a second, then a : ping keepalive every 30 seconds. Press Ctrl+C to stop.

Troubleshooting

The crate name is westyx-nexus (hyphens); the Rust import uses underscores: use westyx_nexus::.... This is standard Cargo behaviour.
  • error[E0432]: unresolved import - ensure the dependency is in Cargo.toml and run cargo build at least once.
  • could not find 'westyx-nexus' in the registry - check network access to crates.io, or run cargo update.
  • package requires rustc 1.88 - upgrade your toolchain: rustup update stable.
  • `create` is not async, or missing .await - v0.11 made the client async; see Async migration.