rscheck
rscheck checks Rust workspaces against layered project rules.
It covers rules that sit above compiler errors and default Clippy linting: architecture boundaries, API contracts, duplication thresholds, scoped overrides, and repo-specific constraints.
Site: https://xsyetopz.github.io/rscheck/
Install
That installs:
rscheckcargo-rscheck
Git install still works if you want the repo head instead of the published crate:
Check A Workspace
Initialize a policy file:
Run checks:
Choose a report format:
Preview edits:
Apply safe fixes:
Apply safe and unsafe fixes:
Pass extra cargo/clippy arguments after --:
Inspect rule metadata:
Configuration
rscheck reads .rscheck.toml from the workspace root. The v2 config uses
engine mode, adapters, dot-form rule IDs, and path-scoped overrides.
= 2
[]
= "auto"
[]
= ["**/*.rs"]
= ["target/**", ".git/**"]
[]
= "text"
# output = "path/to/report.txt"
[]
= true
= []
[]
= "deny"
= ["std", "core", "alloc", "crate"]
= true
= true
= true
[]
= "warn"
= "cyclomatic"
= 200
= 25
[]
= "deny"
= ["std::process::Command"]
[[]]
= ["crates/rscheck-cli/**"]
[]
= 260
= 35
semantic = "auto" runs syntax rules on stable and runs semantic checks when
the semantic backend is available. require fails the run if that backend is
missing. off disables semantic rules.
Rule Families
Current built-in families include:
architecture.*design.*shape.*portability.*
Current rules include:
architecture.qualified_module_pathsarchitecture.banned_dependenciesarchitecture.layer_directiondesign.public_api_errorsdesign.repeated_type_aliasesshape.file_complexityshape.duplicate_logicshape.responsibility_splitportability.absolute_literal_paths
Use As A Library
The library crates are not published on crates.io yet.
[]
= { = "https://github.com/xsyetopz/rscheck" }
use Workspace;
use Policy;
use Runner;
use env;
let root = current_dir.unwrap;
let policy = default;
let ws = new.load_files.unwrap;
let report = run.unwrap;
println!;
Release
Manual release flow for the rscheck-cli package:
Verify the published package in a fresh environment:
Trusted publishing can be added later once the manual crates.io flow is settled.
Local Site
Build the Pages artifact locally: