You can chose to have Paralegal treat a whole crate the same way it does a shared library. This can be used either because the code in the crate uses features for which Paralegal’s analysis is imprecise (see Soundness of Paralegal) or as an optimization, because the crate is expensive to analyze. It is not recommended to do this in general, but it can be useful to create a “rapid response”. For example, you may run Paralegal during development with all crates but the workspace excluded and during CI with all crates included. This process is controlled by the --include
argument.
# Rapid response during development
cargo paralegal-flow\\
--include=my-server\\
--include=my-library\\
--include=crate # special value that refers to the entry point crate
<other arguments>
# Full run for CI
cargo paralegal-flow <other arguments>