synthiaresearch 0.1.0

Rust SDK for the Synthia API
Documentation

synthiaresearch (Rust)

Rust SDK for the Synthia API — adversarial conversational evals for AI agents.

Synthia interviews your agent to model its users, generates a calibrated dataset of adversarial scenarios, plays each one in a deterministic simulator, and judges every rollout. Your agent runs on your infrastructure; only replies and traced tool calls cross the wire.

The same package name ships on all three registries — synthiaresearch on crates.io, npm, and PyPI — and the SDKs mirror each other: same methods, same request bodies, same server contract.

Status

Early preview. This release publishes the generated API contract types only — the Synthia client, ToolSandbox, and the synthia CLI are in development and land in a later version. If you want a working SDK today, use the JavaScript or Python package, which are feature-complete:

npm install synthiaresearch
pip install synthiaresearch

Install

cargo add synthiaresearch

Requires Rust 1.82+. The client is async and expects a Tokio runtime.

What is in this release

Payload types for every schema in the Synthia OpenAPI contract, generated from the same specification the JavaScript and Python SDKs generate from, so all three stay in lockstep:

use synthiaresearch::types::{ProbeSession, ProbeSessionStatus};

let session: ProbeSession = serde_json::from_str(body)?;
assert_eq!(session.status, ProbeSessionStatus::Active);

Two deliberate properties of the generated types:

  • Enums are open. A status value this SDK predates deserializes to Other(String) rather than failing the whole response, matching how the TypeScript and Python SDKs tolerate a newer server.
  • Unknown fields are ignored, and structs are #[non_exhaustive], so a server-side field addition is never a breaking change.

Documentation

License

MIT