Submodular optimization platform in Rust.
Large-scale subset selection with provable (1-1/e) approximation guarantee.
- Lazy Greedy, Stochastic Greedy, Continuous Greedy
- Facility Location, Coverage, Log-Determinant
- Thread-safe, deterministic, scalable
Specification complete. Implementation in progress.
# Set up the complete development environment
mise run setupThis project uses Lefthook for automated code quality checks.
Installation:
# macOS
brew install lefthook
# or using cargo
cargo install lefthook
# Install hooks
lefthook installHooks:
- pre-commit: Runs
cargo fmt --check(~0.3s) - pre-push: Runs
cargo clippy --workspace --all-targets -- -D warnings(~5s)
Skip hooks temporarily (for WIP commits):
git commit --no-verify -m "WIP: work in progress"Manual checks (useful for testing hooks before committing or fixing issues):
lefthook run pre-commit # Run formatting check manually
lefthook run pre-push # Run clippy check manuallymise run test # Run tests with nextest
mise run check # Quick compilation check
mise run lint # Run clippy linter
mise run fmt # Format code
mise run watch # Watch and auto-test
mise run bench # Run benchmarks
mise run pip-compile # Compile Python dependenciesPython dependencies are managed with pip-tools for full reproducibility:
- Edit
requirements-dev.into add/update dependencies - Run
mise run pip-compileto generaterequirements-dev.txt - Run
mise run setupto install the updated dependencies - Commit both files
Apache-2.0