rer — Rez En Rust

A faithful Rust port of rez's package solver — callable from Python via PyO3, resolves match rez 1:1.

Get started

MIT-licensed. GitHub v0.1.0-rc.8

Rez-faithful

A port of rez/src/rez/solver.py — weak (~) and conflict (!) requirements, variant selection order, extract / intersect / reduce / split, and implicit backtracking. Output matches rez 1:1.

1:1 on the rez benchmark

Every one of the 188 cases in rez's bundled benchmark dataset resolves to rez's own recorded result — same status, same package set.

Python-callable

pip install pyrer, import pyrer. The PyO3 bridge runs the ported solver against an in-memory package repository handed in from rez.

Fast

On the rez benchmark, on one machine: ~44s for all 188 resolves versus ~206s for rez benchmark on rez 3.3.0. Same-machine context, not a lab claim.

In-memory by design

rer never reads the filesystem. The host (rez) loads packages and passes them in as JSON; rer solves and hands the resolution back.

MIT licensed

Open source. Built to slot into existing rez workflows without disturbing them.