Architecture¶
BenchBro keeps the public compatibility facade in benchbro.core while its
implementation is divided by responsibility:
models: public data structures, validation, registries, types, and schema versionapi: decorators, parameters, and public registration helperslifecycle: dependency injection, scoped systems, async handling, setup, and teardownmeasurement: statistical summaries, confidence intervals, outliers, and adaptive stoppingrunner: orchestration, isolation, affinity, timeouts, GC control, and profilingcomparison: environment compatibility and confidence-aware regression classificationserialization: schema migration and JSON, CSV, and Markdown reportsenvironment: runtime, hardware, repository, lockfile, power, and runner metadatahistory: local run storage and selectionconfig:pyproject.tomlandbenchbro.tomlloadingprofiling: built-in and user-registered profiler hookscli: command parsing, discovery, presentation, and workflow coordinationpytest_plugin: opt-in pytest fixture integration
Dependencies point inward toward models. The public core module re-exports
the established API so upgrades do not force import changes. Result payloads use
an explicit schema version, and all compatibility migrations live in
serialization rather than leaking into the runner or comparison logic.