{"id":26221480,"url":"https://github.com/fedemagnani/optimization-solvers","last_synced_at":"2025-08-13T14:19:22.801Z","repository":{"id":262302376,"uuid":"863682096","full_name":"fedemagnani/optimization-solvers","owner":"fedemagnani","description":"Composable numerical solvers for unconstrained and simple-bounds constrained convex optimization problems in Rust. WASM compatible","archived":false,"fork":false,"pushed_at":"2025-07-10T08:57:05.000Z","size":10460,"stargazers_count":10,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-13T10:39:51.582Z","etag":null,"topics":["bfgs","convex-optimization","lbfgs","optimization","optimization-algorithms","optimization-methods","rust","solver","spg"],"latest_commit_sha":null,"homepage":"https://fedemagnani.github.io/optimization-solvers-demo/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedemagnani.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-26T18:09:01.000Z","updated_at":"2025-07-10T08:57:08.000Z","dependencies_parsed_at":"2024-11-11T18:27:39.764Z","dependency_job_id":"1ad0622c-b980-42a6-aae8-d6f397e917d7","html_url":"https://github.com/fedemagnani/optimization-solvers","commit_stats":null,"previous_names":["fedemagnani/optimization-solvers"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fedemagnani/optimization-solvers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedemagnani%2Foptimization-solvers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedemagnani%2Foptimization-solvers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedemagnani%2Foptimization-solvers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedemagnani%2Foptimization-solvers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedemagnani","download_url":"https://codeload.github.com/fedemagnani/optimization-solvers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedemagnani%2Foptimization-solvers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270254829,"owners_count":24553108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bfgs","convex-optimization","lbfgs","optimization","optimization-algorithms","optimization-methods","rust","solver","spg"],"created_at":"2025-03-12T16:20:36.690Z","updated_at":"2025-08-13T14:19:22.772Z","avatar_url":"https://github.com/fedemagnani.png","language":"Rust","readme":"# Optimization Solvers\n\nA comprehensive Rust library implementing composable state-of-the-art numerical optimization algorithms with WebAssembly support for browser-based optimization.\n\n- **[Live WASM demo](https://fedemagnani.github.io/optimization-solvers-demo/)** - Run some optimization problems from yout browser\n\n## Quick Start\n\n```rust\nuse optimization_solvers::{GradientDescent, BFGS, Newton};\n\n// Run optimization with any solver\nlet result = solver.minimize(objective_function, max_iterations);\n```\n\n## 📚 Documentation \u0026 Resources\n\n- **[Documentation](https://deepwiki.com/fedemagnani/optimization-solvers)** - Full Rust API documentation\n- **[Examples](./examples/)** - Complete examples for all optimization algorithms\n- **[WASM Documentation](./wasm/README.md)** - Browser-based optimization with WebAssembly\n- **[Academic resources](./resources.md)** - Misc of papers/books about numerical optimization\n\n## 🧮 Solver Categories\n\n### First-Order Methods\n- **[Gradient Descent](./src/steepest_descent/gradient_descent.rs)** - Classic steepest descent\n- **[Projected Gradient](./src/steepest_descent/projected_gradient_descent.rs)** - Constrained optimization\n- **[Coordinate Descent](./src/steepest_descent/coordinate_descent.rs)** - Coordinate-wise optimization\n- **[SPG](./src/steepest_descent/spg.rs)** - Spectral Projected Gradient\n- **[P-Norm Descent](./src/steepest_descent/pnorm_descent.rs)** - Lp-norm based descent\n\n### Quasi-Newton Methods\n- **[BFGS](./src/quasi_newton/bfgs.rs)** - Broyden-Fletcher-Goldfarb-Shanno\n- **[DFP](./src/quasi_newton/dfp.rs)** - Davidon-Fletcher-Powell\n- **[Broyden](./src/quasi_newton/broyden.rs)** - Broyden's method\n- **[L-BFGS-B](./src/quasi_newton/lbfgsb.rs)** - Limited-memory BFGS with bounds (enable `lbfgsb` feature flag)\n\n### Second-Order Methods\n- **[Newton's Method](./src/newton/mod.rs)** - Classical Newton optimization\n- **[Projected Newton](./src/newton/projected_newton.rs)** - Constrained Newton\n- **[SPN](./src/newton/spn.rs)** - Spectral Projected Newton\n\n## 🚀 Getting Started\n\n```bash\n# Add to Cargo.toml\ncargo add optimization-solvers\n\n# Run examples\ncargo run --example gradient_descent_example\ncargo run --example bfgs_example\n\n# Build for WebAssembly\ncd wasm \u0026\u0026 ./build-wasm.sh\n```\n\n## 📦 Features\n\n- **Multiple Algorithms**: 15+ optimization algorithms\n- **WebAssembly Support**: Run in browsers with full performance\n- **Line Search Methods**: Backtracking, More-Thuente, and more\n- **Bounded Optimization**: Support for box constraints\n- **Comprehensive Examples**: Ready-to-run examples for all solvers\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedemagnani%2Foptimization-solvers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedemagnani%2Foptimization-solvers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedemagnani%2Foptimization-solvers/lists"}