janitor-rs provides the Rust/PyO3 extension kernels used by
pyjanitor. It is not a
standalone command-line tool.
Install Rust and uv, then run the Rust tests:
cargo test --no-default-featuresOn macOS, the repository wrapper provides a consistent Python framework for PyO3 tests:
./scripts/test-rust.shPass additional Cargo test arguments after the wrapper command:
./scripts/test-rust.sh single_range_predicateRun formatting and lint checks with:
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warningsThe per-endpoint test and operation coverage is tracked in
AGGREGATION_MIGRATION_MATRIX.md.
Build a wheel locally with maturin:
maturin build --releaseThe package version is read from Cargo.toml. Release preparation and PyPI
publishing are documented in
RELEASING.md.
src/contains the typed join and aggregation kernels.benches/contains Criterion benchmarks..github/workflows/contains CI and on-demand release workflows.
The Python-facing integration tests live in the pyjanitor repository. Changes to the Rust/Python boundary should be tested in both repositories.
AGENTS.md
is the canonical reference for implementation-level
detail that doesn't belong in a contributor quickstart: the range-first
Python/Rust ABI contract, the cross-boundary benchmarking methodology, and
other non-obvious conventions and gotchas.