Skip to content

System One Adapter Rust

Rust port of the Python system-one-adapter: a drop-in stand-in for TypeSafe's `system_one` evaluation API backed by LLM providers instead, so the same questions can be scored against an LLM on cost, speed and intelligence.

Stars
0
Language
Rust
License
MIT
Published by
Community
Author
codeitlikemiley
Last verified
Oct 2026

About this project

A drop-in replacement for TypeSafe's systemone evaluation API, backed by LLM APIs instead of TypeSafe. Useful for comparing TypeSafe against an LLM on cost, speed, and intelligence. This is a Rust port of the Python system-one-adapter package. Compatible question, answer, retry, and error types are implemented locally — this crate does not depend on typesafe-ai. Provider HTTP clients are optional features (both are enabled by default):

Quoted from the project's README. Read the full README.

Highlights

  • Question, answer, retry and error types are implemented locally, so the crate carries no `typesafe-ai` dependency.
  • `llm_attempts` records every provider call in order with messages, schema, response and finish reason, and replays back through `provider.request`.
  • Usage adds `input_tokens_total`, `n_retries`, `n_retries_malformed_structure` and `latency` on top of the SDK's existing fields.
  • OpenAI's own endpoint uses the Responses API with strict JSON Schema, while custom base URLs default to Chat Completions unless you pass `api`.

Watch out

This is a comparison harness, not a Jev client. The README frames it as a drop-in replacement for the `system_one` evaluation API backed by LLM APIs instead of TypeSafe, useful for comparing the two on cost, speed and intelligence, and the crate implements the compatible types locally rather than depending on the vendor SDK. The blocking client runs its own Tokio runtime when a built-in HTTP provider is used. A response that hits the Anthropic output token limit raises `TypeSafeError` and does not consume malformed-output retries, so the default 4096-token ceiling can surface as an error on larger evaluations. Transient retry count and time budget apply separately to each provider request, while corrective requests share the `n_retry_malformed_structure` allowance and preserve earlier responses and correction messages. Serialization goes through serde; there is no `model_dump`. Copy reviewed against the repository README on 2026-10-04, not from running it.

Questions about this entry

Short answers drawn from the linked project or page.

More Jev resources like this

24GitHub stars
Unofficial laptop study of parallel constrained decoding: prefill once, share the KV cache across fields, and decide all schema fields in one batched forward pass without writing JSON.
Jev Practices & Patterns#community#jevbest#catalog-import
16GitHub stars
Vendor-neutral harness that tests whether Jev reranking improves a small RAG stack, using frozen hybrid BM25 plus BGE-M3 candidates and isolating retrieval, rerank, and generation stages.
Jev Practices & Patterns#community#jevbest#catalog-import
7GitHub stars
Benchmark harness that tests whether models can forecast federal motion-to-dismiss outcomes from the written record, scored per claim-defendant pair with micro-Brier and clustered intervals.
Jev Practices & Patterns#community#jevbest#catalog-import
Frozen 100-question-per-cell check of TypeSafe Jev on Korean versus English reading, paraphrase, and medical exam items, with recorded responses and uncertainty intervals.
Jev Practices & Patterns#community#jevbest#catalog-import
7GitHub stars
Word-level language model experiment that uses Jev as its output layer, with explicit tokenizer, sampler, repetition mask, stop rules, and chunk verification.
Jev Practices & Patterns#community#jevbest#catalog-import
7GitHub stars
Python client and decision toolkit for the Jev System One endpoint with noul, choice, and score primitives, batched asks, composition helpers, concurrent evaluation, and an MCP server.
Jev Practices & Patterns#community#jevbest#catalog-import

From the Jev guides

Original write-ups on what this entry is for.

Most Jev accuracy problems are state problems. What belongs in a state, what is a pre-made judgment to leave out, and why naming the slice you ask about matters more than the wording.
Jev Practices & Patterns#state#design#primitives
Read article
A Noul returns one number and no separate confidence. How to read the value, pin its boundary with criteria, split compound questions, and set a per-action threshold that matches the cost of being wrong.
Jev Practices & Patterns#noul#primitives#confidence
Read article
A Score is a weighted position, not a ruler. Why the number can land between levels, why levels are judged separately, and how to combine several atomic scores in code instead of one crowded rubric.
Jev Practices & Patterns#score#primitives#scoring
Read article
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai