BENCHMARKS · V0.9.0 SOURCE AUDIT

Context is measurable. Cost savings are not proven yet.

Publish the counterexample before the claim.

Version 0.9.0 retains the earlier token, paid harness, Rust and hot-reload measurements and adds LAW16 proof experiments with costs and failures preserved. The completed Claude campaign has 19 passing trials out of 20, or nine fully accepted matched pairs. The separate routing qualification remains not evaluated. None of these results establishes a general productivity, cost or speed advantage.

semaprax://benchmarksv0.9.0
entity     Semaprax
status     beta
snapshot   933196b
authority  github.com/wavect/semaprax
// STATUS

Repository status at the audited snapshot

Repository snapshot933196b · 2026-10-15. The v0.9.0 tag resolves to the pinned source commit. Its exact-tag CI completed successfully. This does not establish blanket production or security assurance.
Full product status55 Partial · 0 Implemented · 0 Missing
Graph and project contractCanonical source, stable IDs and checked compiler representations connect laws, semantic queries, edits and execution. Feature-selected graph and Project schemas preserve their own admission, compatibility and host-authority contracts.
Published beta releasev0.9.0 · Published 11 October 2026 at 15:07 UTC. All 91 jobs in the exact-tag publication run succeeded. Five toolchain archives and two installers ship with SHA256SUMS, five archive attestations and independently verified signed aggregate provenance. Native installer journeys gate publication. Archives are not notarized or claimed reproducible; offline verification does not establish current revocation state. Exact-tag CI.
Package and API previewsThe release includes useful language, law, harness and host-integration profiles. Generated Rust/npm packages, public generic ABIs and broader platform support retain separate publication and support decisions.

Is Semaprax cheaper for coding agents?

A general cost advantage is not established. Exact local cl100k_base measurements show smaller model-text payloads for two large graphs and an HTTP task context, while small contexts grow. A separate paid harness campaign measured cost per accepted task; its best saving was about 1%, below the predeclared 10% threshold. Provider usage, local token counts, execution speed and task correctness remain separate measurements.

// TOKENS

The same selected facts, counted two ways

Five rows from the committed local model-text v2 report. Counts use cl100k_base over the complete payload, including metadata. They are local tokenizer counts, not provider invoices; a higher model-text number is a regression.

Selected viewJSON tokensModel-text tokens
Banking ledger: full graph3784632486
ledger.apply: task context16791802
HTTP application: full graph161861134165
HTTP app.main: task context56025010
Calculator Project: graph25002615

Read the exact corpus, both tokenizers and replay contract

// 01

Nine measurement and qualification tracks

Exact compact-payload tokens

With cached tiktoken 0.12.0, the large banking and HTTP graphs fall from 37,846 to 32,486 and from 161,861 to 134,165 cl100k_base tokens. The HTTP task view falls from 5,602 to 5,010. The complete model-text envelope is counted and replayed against the same selected JSON.

Small-view regressions

The ledger task context grows from 1,679 to 1,802 tokens; the calculator Project graph grows from 2,500 to 2,615. Fixed metadata can outweigh compression. Source-versus-context comparisons answer a different question from encoding the same selected facts.

Session reports and provider receipts

Token reports group compatible tokenizer fingerprints, methods and measurement boundaries. Harness receipts preserve actual provider usage, failed/truncated attempts and estimated versus reported cost. Missing counts remain unavailable; receipts are not a comparison outcome by themselves.

Paid task-cost qualification

The 5 October campaign used Claude Haiku 4.5 through a metering shim: 711 calls and USD 3.10 recorded spend. Each arm accepted 109 of 120 tasks. The best cost-per-accepted-task saving was about 1%, below the required 10%; no arm qualified and defaults stayed unchanged. The app-task path does not exercise the entire Semaprax source workflow.

Real Rust application overhead

Saved Regex/Url, Serde/iterator and reqwest/Tokio applications have clean locked offline macOS arm64 and Linux x86-64 guest receipts, each with 22 passed stages/measurements. Copy and allocation ledgers accompany the results. Adverse M1/M3 throughput remains an investigation, not a near-zero-overhead claim.

Checked hot reload versus restart

On the recorded macOS arm64 fixture, cold A-to-B reload had a 545.694 ms median versus 37.904 ms for full restart. Eleven samples and separate admission, preparation, wait and activation measurements preserve that counterevidence. It demonstrates checked continuity, not a speedup or a result for other operating systems.

LAW16: completed Claude campaign

A separate LAW16 Claude campaign completed 20 trials for USD 0.291235: 19 passed independent candidate/attack replay, one Bend candidate failed. Nine matched pairs fully passed; this is no general language or cost ranking.

LAW16: preserve incomplete campaigns

A separate earlier campaign retained four successful matched pairs before its fifth Bend call exceeded the requested USD 0.03 limit, reporting USD 0.039957 for that call. Total recorded cost was USD 0.151974 across nine calls. Different frozen budgets cannot be pooled. Thirty local phase samples per route and incremental cache controls do not establish a cross-language speed advantage; AC1 and issue #392 remain partial/open.

MR-13: routing not evaluated

The dated routing matrix reports not evaluated, not a zero-cost success. No learned decision adapter is live-tested or qualified in that record. Fixture conformance, paid generation trials and development qualification cannot qualify runtime model, agent or tool choice. Rules stay active in both domains.

// 02

What these results do not establish

  • A general advantage in provider-billed tokens or cost per accepted task across projects and models.
  • Better correctness, latency or maintenance productivity than Rust, TypeScript or another language.
  • Universal Rust interoperability without overhead, or physical Linux x86-64 performance from an emulated guest.
  • A hot-reload speed advantage, native/Wasm process swapping or broad platform performance.
  • Current release performance from historical debug-build timing or correctness from a context compression ratio.
// 03

The evidence needed before a cost claim

  1. Freeze equivalent tasks, source revisions, adapters and the acceptance grader before the experiment.
  2. Keep model identity, permissions, token and money limits, retries and stopping rules comparable.
  3. Record complete provider receipts, elapsed time, accepted-task rate and regression failures, including unsuccessful attempts.
  4. Publish raw measurements, missing evidence, exclusions and uncertainty. Keep local tokenizers separate from billed usage.
  5. Require the declared quality and cost thresholds before changing defaults; repeat on additional projects, models and hosts.

Reviewed on 15 October 2026 against the v0.9.0 commit, published assets and release run. The tagged install handbook and channel registry still show v0.8.0 examples; use this page’s pinned v0.9.0 downloads. Older matrix/roadmap headings are historical. The live handbook follows main and can describe newer work. GitHub repository.

// DOCS

Open the Semaprax handbook

The online handbook is the English guide published from main and may cover changes after 0.9.0. Use the pinned snapshot when reproducing this release.

// REF

Primary sources for this page

Reviewed on 15 October 2026 against the v0.9.0 commit, published assets and release run. The tagged install handbook and channel registry still show v0.8.0 examples; use this page’s pinned v0.9.0 downloads. Older matrix/roadmap headings are historical. The live handbook follows main and can describe newer work.

  1. Compact model-text contract and exact token table
  2. Raw local token measurement report
  3. Per-input and session token reporting
  4. Provider receipt, cost and output-cap semantics
  5. Paid harness qualification and unchanged defaults
  6. Real Rust application receipts and overhead
  7. Hot-reload timing and restart comparison
  8. Original context measurement boundary
  9. Tagged changelog and release history
  10. Routing support and unevaluated qualification gate
  11. LAW16 retained trials, adverse outcomes and scope
// FAQ

Questions and practical answers

Does Semaprax use fewer tokens than Rust or C?

No general language comparison is established. The compact-context table compares two encodings of the same selected Semaprax facts and includes both reductions and regressions. A separate paid harness campaign measured cost per accepted task, but its roughly 1% best saving did not reach the 10% qualification threshold.

Why publish a benchmark that does not show savings?

It tells users when an optimization helps and when it does not. Small compact views can grow, the recorded hot-reload fixture is slower than restart, and some Rust application routes have adverse throughput. Keeping those results with the positive evidence makes default and support decisions reviewable.

Research project by Wavect: Wavect GmbH. Created by Wavect as an open-source systems research project.