typesafe-sdk-rust (zchee)
Vendor-neutral async Rust SDK for System One decision models with derive-based question sets and one multiplexed HTTP/2 connection.
Overview
Decision Model Rust SDK (crate decision-model-sdk) is an async Rust client for any decision model served through the System One API, not only TypeSafe's Jev. It is a port of the official Python SDK 0.7.2, with intentional deviations documented. It has no default base URL or model, so an API key is only sent to the vendor the caller names.
Questions can be built with a builder or declared as a struct with #[derive(QuestionSet)], serialized at compile time, with responses decoded straight into the struct's fields. Every request from a client shares one multiplexed HTTP/2 connection (the README notes 64 concurrent cold calls open exactly one), and retries follow the Python SDK defaults under a time budget. It has CI, coverage and benchmarking badges and a separate adapter crate.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Other | Struct-declared question sets (Choice, Score, Noul) via #[derive(QuestionSet)] | — |
How it works
- Declare a question set struct with the derive macro.
- Create a client with an explicit vendor base URL.
- Call the System One endpoint over a shared HTTP/2 connection.
- Decode answers directly into the struct.
Strengths
- Vendor-neutral; works with any System One provider.
- Compile-time question serialization.
- Single multiplexed connection under concurrency.
Caveats
- No defaults; you must configure base URL and model.
- Community port.
Getting started
cargo add decision-model-sdkAt a glance
- Type
- Library
- Status
- beta
- Language
- Rust
- Runtime
- library (crate)
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Unofficial async Rust SDK for the TypeSafe AI System One API: typed questions via #[derive(QuestionSet)], a port of typesafe-sdk-python.
hellogumbo/awesome-jev
Frequently asked questions
Is it tied to TypeSafe?
No, it works with any vendor serving the System One API and has no default base URL.
What does the derive macro do?
Declares questions as struct fields and decodes answers into them.
How are connections handled?
All requests share one multiplexed HTTP/2 connection per client.
Related projects
Go harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoTypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.
ProjectbetaTypeScriptSwift 6 bridge that runs System One decision models behind Apple's Foundation Models API, on device with Laya or via hosted endpoints.
ProjectbetaSwiftZero-dependency npm package that runs Laya natively or as WebAssembly in Node, Bun and browsers, drop-in for Jev's /v1/systemone.
ProjectbetaJavaScriptLocal-first desktop AI workbench for llama.cpp, vLLM and SGLang that includes a JEV typed-decision page and /v1/systemone gateway.
Servicebeta- OpenJev★ 2
Run System One-style typed decisions on any Hugging Face instruct model, with a typesafe-sdk-compatible server and calibration tools.
LibraryprototypePython