Hacker News new | ask | show | jobs
by 7thaccount 2249 days ago
Neat and thanks for the explanations! When you say running it as Webassembly, is the entire thing compiled that way, or is that just in the front end with Octave running on the server?
1 comments

The whole application runs on the client (in the browser). The server just serves up static resources. These are cached by the browser so the application will still work if you are offline. The result is much like the desktop applications you mentioned, but without anything needing to be installed.

The JavaScript application presents the UI and controls editing of a JSON representation of the MATPOWER case structure. This data can be seen using the JSON option on the Export page. The WebAssembly program contains GNU Octave and its dependencies. It is run in a WebWorker (background thread) and the JSON data is passed to and fro. The program that converts the JSON into Octave data structures and back again is available here:

https://github.com/rwl/octpower