alphaville / optimization-engine

Nonconvex embedded optimization: code generation for fast real-time optimization

Home Page:https://alphaville.github.io/optimization-engine/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WASM Support

AndrewJSchoen opened this issue · comments

Is your feature request related to a problem? Please describe.
I am working on a project that uses this crate, and we are looking to deploy the project in WebAssembly for use on the web. However, it appears that this library is not currently setup to handle this, and as such it prevents this from being possible as-is.

Describe the solution you'd like
I know of one fork of this repo that has added this support. Since it would make sense for such a change to be as minimally invasive as possible, it might make sense to configure such implementation as a feature that could be enabled.

Describe alternatives you've considered
Currently I am just using the other repo mentioned, but it would be nice to see this in the official repo/crate.

Thank you, @AndrewJSchoen for reporting this. Would it be convenient if we supported WebAssembly using a feature?

Yes, that would be fantastic!

@AndrewJSchoen Support for Wasm has been added to OpEn version 0.7.4 - just released. You can have a look at the doucmentation.

This looks great! Thanks!

I was working with the new WASM support, and specified it my cargo.toml as such:

optimization_engine = { version = "0.7.4", features = ["wasm"] }

, and encountered an error when running it. The only log I was able to retrieve from WebAssembly was

panicked at 'time not implemented on this platform', library/std/src/sys/wasm/../unsupported/time.rs:13:9

I tested this again with the old version I was using (yepw/optimization-engine), and this error did not appear. Maybe something didn't quite make it through to 0.7.4?

@AndrewJSchoen thank you for reporting this - let me check.

Sounds good. Feel free to let me know if you would like me to try/test anything on my end!

@alphaville Any updates on this? Ideally I would like to switch to the official release.

@AndrewJSchoen This has been resolved in OpEn v0.7.7 which has been released.