Installation#
rdlfmt is a single self-contained binary. Pick whichever of these fits the
toolchain you already have.
Prebuilt binary#
Needs no toolchain of any kind:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/fischeti/rdlfmt/releases/latest/download/rdlfmt-installer.sh | sh
On Windows:
powershell -c "irm https://github.com/fischeti/rdlfmt/releases/latest/download/rdlfmt-installer.ps1 | iex"
Binaries for each platform are also attached to every release if you would rather place one yourself.
From PyPI#
Convenient if you already manage peakrdl this way. The package is the Rust
binary in a wheel, not a Python program, so it pulls in nothing else:
uv tool install rdlfmt
Or without installing at all:
uvx rdlfmt --check .
pip install rdlfmt works the same way.
From crates.io#
If you have a Rust toolchain:
cargo install rdlfmt
From source#
Rust 1.88 or newer:
git clone https://github.com/fischeti/rdlfmt
cd rdlfmt
cargo build --release
As a PeakRDL plugin#
Installed into the same environment as
PeakRDL, the wheel also registers a
peakrdl fmt subcommand:
uv tool install peakrdl-cli --with rdlfmt
peakrdl fmt --check .
It takes the same arguments as the rdlfmt command and returns the same
exit codes — it runs the very same binary, which ships in
the wheel next to the peakrdl executable.
Unlike every other PeakRDL subcommand, fmt does not compile or elaborate
your design. It reads the source text, so it can format a file that does not
yet elaborate.