Architecture¶
benchcore/
├── core/
│ ├── models/
│ └── protocols/
├── engine/
├── comparison/
├── reporting/
├── storage/
└── integrations/
├── pytest/
└── unittest/
Dependency direction¶
core defines the language of the domain and imports no outer BenchCore layer.
It contains models, enums, exceptions, constants, aliases, and Protocols—not
execution algorithms, serialization, rendering, filesystem access, or framework
imports.
engine owns measurement, calibration, lifecycle, decorators, and statistical
calculation. reporting, comparison, and storage compose core types without
entering timed regions. Integrations adapt framework lifecycle to the engine.
Import policy¶
The root benchcore namespace deliberately exports nothing. Users import from
the package that owns a capability:
from benchcore.core.models import BenchmarkConfig
from benchcore.engine import Bench
from benchcore.reporting import create_report
Each production class or Protocol has one defining module. Package
__init__.py files provide cohesive package-level APIs; parallel root facade
modules are not maintained.
Architectural tests enforce these boundaries.