Skip to main content
fireweave is the Fireweave server SDK for Rust. It evaluates control points and registers targets — the two v1 capabilities. The crate is blocking and synchronous, like the Python SDK. The wire protocol still uses the parameter name flagKey.

Supported versions

From Cargo.toml: The SDK reads no environment variables. Every option is an explicit field on InitOptions.

Install

Or in Cargo.toml:

Initialize

init_fireweave is the single entry point. mode is required and never inferred. Init returns Err (kind Configuration) when mode is missing, remote credentials are blank, api_url fails the host allowlist, or local mode is combined with credentials.
Production:
InitOptions::local() seeds an empty map. InitOptions::remote(api_key, api_url) sets Mode::Remote. Lower-level construction:

Configuration and authentication

Auth: Authorization: Bearer <key> over ureq. Paths: POST /v1/flags/evaluate, POST /v1/targets/register. https is required off-loopback; http is loopback-only. Default allowlist: app-server.fireweave.ai, staging-app-server.fireweave.ai, plus loopback. See Configuration and auth.

Targets

register_target lives on the client. It never panics.
options may be None. In local mode the adapter records the target in-process and traces the call. Recorded targets are readable by downcasting the runtime adapter:
See Targeting and targets.

Control points

client.control_points is the product API. client.flags() returns a reference to the same field (std::ptr::eq holds). The alias is silent at runtime.
Nine methods: get_boolean_value, get_string_value, get_number_value, get_object_value, get_boolean_details, get_string_details, get_number_details, get_object_details, evaluate. Evaluation never panics. JsonValue is serde_json::Value. See Control points.

Adapters

See Adapters.

Errors

FireweaveError with the same 15 ErrorKind values. Evaluation never panics; init returns Result. register_target returns RegisterTargetResult { ok, error }. See Errors.

Testing

Local mode for an offline boolean seed. InMemoryAdapter for fixture-driven tests. The repo test-server stub does not implement POST /v1/targets/register. See Testing.

Shutdown

See Initialize, ready, shutdown.

Not in this SDK

  • An async runtime or async/await client
  • FireweaveProvider / OpenFeature
  • releases, exposures, signals, capabilities, guardrails
  • Environment-variable auto-read
  • Dependencies beyond ureq, serde, and serde_json

Next

Quickstart

Offline evaluate in every language.

Compatibility

Seven-language surface and the 65×7 aggregate.
Last modified on September 11, 2026