Skip to content

oximo v0.1.0

Choose a tag to compare

@GermanHeim GermanHeim released this 22 May 00:30
· 176 commits to main since this release
a45b5c4

oximo v0.1.0

First public release of the oximo: a Rust algebraic modeling library for LP and MILP optimization.

Future support for nonlinear programming (NLP) and mixed-integer nonlinear programming (MINLP) planned.

Crates

Crate Description
oximo Umbrella crate with prelude and solver re-exports
oximo-expr Arena-allocated expression tree
oximo-core Model, Variable, Constraint, Objective, Set
oximo-solver Solver trait, SolverResult, SolverStatus
oximo-io MPS and LP file writers
oximo-highs HiGHS backend (bundled, no install required)
oximo-gurobi Gurobi backend (requires licensed install)
oximo-gams GAMS solver bridge (requires GAMS on PATH)

Highlights

  • Builder API for variables and constraints using standard Rust operators (+, -, *)
  • Index sets (Set) with Cartesian products, filters, and rule-style constraint generation
  • Indexed variables with per-key bounds via lb_by / ub_by
  • HiGHS solver bundled out of the box - no system install needed
  • Gurobi and GAMS backends behind optional features
  • MPS and LP export via the io feature (on by default)
  • Dual values and reduced costs in SolverResult

Usage

[dependencies]
oximo = "0.1"                                      # HiGHS + MPS/LP writers
oximo = { version = "0.1", features = ["gurobi"] } # add Gurobi
oximo = { version = "0.1", features = ["gams"] }   # add GAMS backend

Full Changelog: https://github.com/GermanHeim/oximo/commits/v0.1.0