● Matches radon 6.0.1 · MIT licensed
radon’s code metrics,
without the wait.
A Rust port of radon, the code-metrics tool for Python. It takes radon’s commands and flags and prints the same output.
Real time, not sped up. 3,824 files from eight popular packages (Django, SymPy, SQLAlchemy, Pydantic, Rich, Black, FastAPI and httpx) on an Apple M5 with 10 cores and a warm file cache, measured 13 November 2026. Finish times are the best of several runs; the bars move at an even rate in between. Reproduce it
| Command | radon | oxradon | Faster | oxradon, 1 core |
|---|---|---|---|---|
cc -s | 7.56 s | 164 ms | 46× | 492 ms (15×) |
hal -j | 7.28 s | 257 ms | 28× | 661 ms (11×) |
raw -s | 2 min 29 s | 177 ms | 847× | 761 ms (196×) |
mi -s | 2 min 46 s | 315 ms | 528× | 1.52 s (110×) |
Swap it in
$ uv tool install oxradonOr pipx install oxradon, or pip install oxradon. Prebuilt for Linux (x86-64 and ARM, including Alpine) and macOS (Apple silicon and Intel), so no Rust is needed. To try it once, run uvx oxradon cc -s src/. With Rust, cargo install oxradon builds it from source.
Then run oxradon wherever you ran radon. The two can be installed side by side.
$ oxradon cc -s -a src/
src/orders.py
F 12:0 process_order - D (24)
C 35:0 Cart - A (4)
M 40:4 Cart.total - A (3)
3 blocks (classes, functions, methods) analyzed.
Average complexity: B (10.333333333333334)
It reads the same configuration files (radon.cfg, setup.cfg, pyproject.toml, ~/.radon.cfg, RADONCFG) and needs no Python to run. It’s also a Rust library.
Same output, checked
Compared with radon 6.0.1 on Python 3.14.10, byte for byte, over the Python standard library and the eight packages above:
| Command | Files compared | Differences |
|---|---|---|
cc | 4,828 | 0 |
hal | 5,697 | 0 |
raw | 5,698 | 0 |
mi | 5,697 | 0, apart from the wording of syntax errors |
radon’s quirks are reproduced too. Where the two differ, mostly where radon would crash or stop, COMPATIBILITY.md lists every case.
When to keep using radon
Stay with radon if you:
- analyze Jupyter notebooks;
- need
cc --xml,--mdor--codeclimate; - import radon from Python;
- work on Windows.
Why the gap is so uneven
cc and hal gain from Ruff’s compiled parser and from using every core. raw and mi gain much more. For each logical line, radon re-tokenizes a growing buffer, which is quadratic in long statements. oxradon gets the same answers in one pass, so most of that gap is the algorithm, not Rust.