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