Introducing feotest

feotest brings probabilistic testing to Rust — a framework for services whose output varies by design. Version 0.1.0 is on crates.io.

Probabilistic testing, native to Rust. A non-deterministic service is treated as a stochastic service: establish a statistical baseline, then verify the service still meets it — with confidence intervals, latency distributions, and auditable verdicts.

The first release of feotest is on crates.io: probabilistic testing, native to Rust.

Why

mavai.org’s punit brought statistical testing to the JVM — run a test many times, then apply inference to decide whether a non-deterministic system is behaving acceptably. Rust teams building the same kind of system — LLM-backed services, stochastic devices, anything whose output varies by design — had no equivalent in their own language, until now.

What it does

A service under test is treated as a stochastic service: rather than a single pass/fail assertion, you establish a statistically defined baseline and then verify the service still conforms to it. That gives you:

  • functional outcomes reported with confidence intervals (Wilson construction)
  • latency treated as a distribution, not an average
  • an overall verdict that is a conjunction of contract criteria
  • covariate-aware baselines, time and cost budgets, rate pacing, and a deployable Sentinel for running checks outside the test harness

It is idiomatic Rust, not a port of punit: functional equivalence with the Java framework, expressed the way Rust developers expect.

[dev-dependencies]
feotest = "0.1"

Verified against the oracle

Like punit, feotest is checked release by release against mavai-R, the family’s statistical oracle — so the numbers it produces match an independent reference implementation of the published methodology.

Get started

The framework is licensed Apache 2.0, developed under a DCO contributor model. Feedback and contributions are welcome on the issue tracker.