Adds new applications for running Substation locally in a browser using WebAssembly
Adds WebAssembly build tags
Motivation and Context
WebAssembly is used by other projects (e.g., Jsonnet, GJSON) to demo functionality locally in the browser, this change brings the same concept to Substation. This has low impact on the core functionality of the project but makes it easier for non-users to demo the system.
WebAssembly doesn't support every feature of the project, so I've added build tags that separates production builds from WASM builds. This has the most impact in the process library where _wasm.go files were added -- these only exist to satisfy interfaces and ensure cross-compatibility with other operating systems. If a user calls one of these processors in the browser, then they get an ENOSYS error.
Description
Motivation and Context
WebAssembly is used by other projects (e.g., Jsonnet, GJSON) to demo functionality locally in the browser, this change brings the same concept to Substation. This has low impact on the core functionality of the project but makes it easier for non-users to demo the system.
WebAssembly doesn't support every feature of the project, so I've added build tags that separates production builds from WASM builds. This has the most impact in the process library where
_wasm.go
files were added -- these only exist to satisfy interfaces and ensure cross-compatibility with other operating systems. If a user calls one of these processors in the browser, then they get an ENOSYS error.How Has This Been Tested?
It's running here: substation-play.pages.dev.
Types of changes
Checklist: