Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Nix packages and shells

The packages below are declared in flake.nix. The four shells are cumulative: mini-rust supplies the Rust build essentials, rust adds Rust development tools, mini-pyscf adds the Python reference-test environment to the minimal Rust shell, and full combines the complete Rust and scientific Python environments. nix develop selects full by default.

Use nix develop .#<shell> to enter a named shell. The direnv setup can select the same names with RUSTIQ_DEV_SHELL; see Development environments.

Rust build essentials

PackagePurposeShells
Rust toolchain from rust-toolchain.tomlrustc, Cargo, Clippy, rustfmt, and Rust source components pinned to the project toolchainAll
cmakeBuilds native dependencies that use CMakeAll
pkg-configHelps native builds find installed librariesAll
libiconv (macOS only)Provides character conversion support needed by native builds on macOSAll on macOS

Rust development tools

PackagePurposeShells
rust-analyzerRust language server for editor completion, diagnostics, and navigationrust, full
cargo-nextestRuns Rust tests with improved reporting and test isolationrust, full
cargo-denyChecks dependency licenses, advisories, sources, and duplicate cratesrust, full
cargo-llvm-covMeasures Rust test code coverage using LLVM instrumentationrust, full
cargo-criterionRuns Criterion benchmarks through Cargorust, full
cargo-expandDisplays macro-expanded Rust coderust, full
cargo-editAdds, removes, and upgrades dependencies from the command linerust, full
baconWatches files and reruns selected Cargo checksrust, full
cargo-watchRuns Cargo commands when files changerust, full
gitSource control commandsrust, full
hyperfineRepeats and compares command-line benchmarksrust, full
jqReads and transforms JSON from the command linerust, full
mdbookBuilds and previews this manualrust, full
nixdNix language server for editor supportrust, full
nixfmtFormats Nix expressionsrust, full
nickelParses and evaluates Nickel configuration filesrust, full
nlsNickel language server for editor diagnostics and completionrust, full
ripgrep (rg)Fast recursive text searchrust, full
timeReports elapsed time and resource usage for commandsrust, full
clang (Linux only)C/C++ compiler used by profiling and native development toolsrust, full on Linux
cargo-flamegraph (Linux only)Profiles Rust programs and creates flamegraphsrust, full on Linux
gdb (Linux only)Command-line debuggerrust, full on Linux
inferno (Linux only)Converts profiler output into flamegraphsrust, full on Linux
perf (Linux only)Linux performance-counter profilerrust, full on Linux
samply (macOS only)Sampling profiler for macOSrust, full on macOS

Python and scientific packages

Python dependencies are described by pyproject.toml and pinned in uv.lock. Nix builds the Python environments from those files. Python is 3.14 in this flake.

Package or groupPurposeShells
uvPython project and dependency manager for workflows outside the prebuilt shell environmentfull
pyscfIndependent quantum-chemistry implementation used for reference calculationsmini-pyscf, full
numpyArray and numerical operations used in tests and scientific Python toolsmini-pyscf, full
pytestRuns the PySCF reference test suitemini-pyscf, full
scipyScientific algorithms used by optional analysis and development toolsfull
matplotlibCreates plots for scientific analysisfull
ipykernelConnects Python environments to Jupyter kernelsfull
jupyterlabInteractive notebook environmentfull
ruffLints and formats Python codefull

mini-pyscf uses the Python test dependency group; full includes the default group, which combines dev, test, and linting. The helper nix run .#pyscf-check -- ... runs the reference tests against the packaged RustiQ binary. For example:

nix run .#pyscf-check -- -q

Other flake outputs

The flake also exposes nix build .#book to build this manual, nix build .#cargo-artifacts for cached Cargo dependency artifacts, and nix build .#pyscf-environment for the base PySCF environment. These are build outputs rather than development shells. The default package is the RustiQ CLI binary, available through nix build.

Useful references