oxradon

● 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

CommandradonoxradonFasteroxradon, 1 core
cc -s7.56 s164 ms46×492 ms (15×)
hal -j7.28 s257 ms28×661 ms (11×)
raw -s2 min 29 s177 ms847×761 ms (196×)
mi -s2 min 46 s315 ms528×1.52 s (110×)

Swap it in

$ uv tool install oxradon

Or 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:

CommandFiles comparedDifferences
cc4,8280
hal5,6970
raw5,6980
mi5,6970, 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, --md or --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.