Project

Evidence

“Pay only for what you use” is a claim, so it gets measured: against a plain-Rust control, with matched toolchain and flags, alternating paired runs, and the raw samples kept.

Read these as budgets, not guarantees. All numbers come from one machine (AMD Ryzen 5 PRO 4650U, Linux, Rust 1.96.1, release profile) with small sample counts and uncontrolled OS page caches. They exist to catch regressions and expose costs, not to rank frameworks.

Phase 1 · Pico against plain Rust

MetricPlain RustPicoDelta
Dependency packages (excl. app)01 (facade)+1
Facade's own dependencies—0—
Clean build, median232.40 ms269.18 ms+36.78 ms
Unchanged rebuild, median133.48 ms135.15 ms+1.67 ms
Comment-edit rebuild, median217.30 ms228.16 ms+10.86 ms
Unstripped binary4,335,592 B4,335,592 B0
Process wall time, median1.203 ms1.256 ms+0.054 ms

Process samples overlap almost entirely (plain 0.899–2.292 ms, Pico 0.898–2.257 ms). A separate allocation probe with positive controls measured zero allocations added by the facade: 0 for the empty entrypoint, identical counts for stdout and a user Box. The clean-build delta, about 16%, is the initial budget to defend.

Phase 2 · Capability resolution

An in-process microbenchmark compares direct typed access with unique resolution and explicit selection at increasing candidate counts. The tested behaviour — missing, ambiguous, selected, cyclic, and 2,048-module acyclic chains validated without stack growth — is listed on Modules.

Phase 3 · Contributions

MetricResult
Target assembly, two declarations86 ns/op median (samples 84–96 ns)
Runtime tree storage96 B for two entries, including backing capacity
Clean build1.116 s median
Unchanged rebuild61.84 ms median
Executable size4,367,280 B
Process wall time1.736 ms median
Internal dependencies2 (Core, Kernel); no facade

Phase 4 · Processes

Projection and freeze are measured and their behaviour is covered by integration tests; see Processes. The runtime plan and the inspection output come from the same frozen resolution.

Reproduce

# from the coordinated checkout (see Getting started)
python3 rustclamp/tools/pico.py --check
python3 rustclamp/tools/pico.py --measure rustclamp/docs/evidence/reports/phase1-pico.json
python3 rustclamp/tools/check.py

Reports are versioned JSON with compiler, target, machine, source fingerprint, commands, cache conditions and raw timings. Full write-ups: rustclamp/docs/evidence.