A high-performance Rust library for numerical optimization, providing efficient implementations of algorithms for linear and nonlinear programming.
Copters is designed to be a comprehensive optimization toolkit for Rust, offering a wide range of algorithms for solving constrained and unconstrained optimization problems. Built on top of the faer linear algebra library, it provides both ease of use and performance.
- Revised Simplex Method - Memory-efficient variant of the simplex method
- Revised Dual Simplex - For problems starting with dual feasibility
- Mehrotra Predictor-Corrector - Polynomial-time algorithms for large-scale linear programs
- ADMM (Alternating Direction Method of Multipliers) - For distributed and constrained convex optimization
- Conjugate Gradient - For quadratic and nonlinear optimization
- Proximal Gradient Descent - First-order optimization method
- Accelerated Gradient Descent - Nesterov and momentum-based methods
- Stochastic Gradient Descent - For problems with uncertainty (stochastic programs)
- Interior Point Method - For nonlinear programs with constraints
- Performance: Leverage Rust's zero-cost abstractions and the efficient
faerlinear algebra library - Correctness: Extensive testing and validation against known optimization problems
- Flexibility: Pluggable objective functions, constraints, and stopping criteria
- Usability: Intuitive API with sensible defaults
- Modularity: Use only the algorithms you need
This library is in early development. APIs are subject to change.
Current status:
- Project structure and dependencies
- Basic linear algebra utilities
- Core algorithm implementations (in progress)
- Documentation and examples
- Comprehensive test suite
- Benchmarks
- Support for automatic differentiation
- Python bindings via PyO3
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
# Build the library
cargo build
# Run tests
cargo test
# Generate documentation
cargo doc --open- Optimization.jl - Julia optimization framework
- scipy.optimize - Python optimization toolkit
- COIN-OR - C++ optimization libraries
- HiGHS - Revised simplex method
This project is licensed under the MIT License - see the LICENSE file for details.
If you use Copters in your research, please cite:
@software{copters,
author = {Avinash Madavan},
title = {Copters: A Rust Library for Numerical Optimization},
year = {2026},
url = {https://github.com/amadavan/copters}
}Avinash Madavan - avinash.madavan@gmail.com
Project Link: https://github.com/amadavan/copters
AI Disclosure: This project makes limited use of AI-assisted tooling. AI is employed for debugging assistance, boilerplate generation, and drafting documentation. All algorithm design, core implementation, and architectural decisions, unless explicitly specified, are made by the author. AI-generated content is reviewed before inclusion.