Skip to main content

Announcing OpEn 0.12.0 for Rust

· 2 min read

OpEn 0.12.0 brings important updates to the core Rust library. The key changes are:

  • Support for both f32 and f64 (docs)
  • Better error handling and reporting
  • Using web-time which works in browsers

Highlights​

Support for both f32 and f64​

The Rust solver now supports generic floating-point types, so you can work with either f32 or f64 depending on your target platform and performance needs.

This is particularly useful for embedded and resource-constrained systems, where f32 can be a better fit, while f64 remains available for applications that need higher precision.

Replaced instant and wasm with web-time​

The timing layer has been simplified by switching to web-time.

This replaces the previous instant setup and the extra wasm-specific feature wiring around it, making timing support cleaner and more portable across native and web-oriented targets.

Better error handling​

Error reporting in the Rust library has been significantly improved.

Projection failures, invalid numerical states, linear algebra failures, and other internal solver issues now surface as richer Rust-side errors with clearer, human-readable explanations. Constraint projections are also fallible now, which means these failures can propagate through FBS, PANOC, and ALM instead of being silently flattened into harder-to-debug behavior.

See also​