First public release.
cito is a fast, pytest-compatible test collector and runner written in Rust — it discovers your tests by parsing them (no imports, no interpreter startup) and hands pytest exactly the tests you asked for.
Highlights
- Collection: home-assistant's 81,251 tests discovered in 0.11 s (pytest: 16.91 s). pandas: 197k tests in 0.26 s.
- Correctness, differentially tested: node IDs are validated against real pytest on ~40 real-world suites (~640k IDs) — home-assistant, pandas, pytest's own suite, sphinx, pip, botocore, pydantic, ... — plus randomized fuzzing. The compatibility contract and the honest list of known gaps are in the README.
- Runner: parallel subprocess chunks,
--warmin-process workers, a per-project daemon (cito run --daemon, ~0.02 s one-shot), failed-first and changed-first scheduling,--lf,--watch,-k/-m, coverage integration. - Zero migration: your tests, fixtures, and plugins are untouched.
pip install cito, thencito run. pytest remains the execution engine — and the exit hatch.
Install
pip install cito # or: uv tool install cito
cito collect # list tests
cito run # run them
Pre-1.0 versioning: 0.x minors may change behavior where pytest compatibility requires it; patches are fixes only. 1.0 freezes the CLI and the node-ID contract.