WASM as a Platform for Abstraction
admin last edited by
In a project I’ve been playing around with recently, we’ve encountered the dilemma where you want to make it easy for users to write their own application logic using the system but at the same time want to keep that logic decoupled from the implementation details of whatever platform the application is running on.
If you’ve been programming for any amount of time your immediate reaction is probably “why bother mentioning this, doesn’t it just fall out of good library design?”, and normally I would totally agree with you, except I forgot to mention a couple of important details…
People need to be able to upload new code while the system is still running
This application will be interacting with the real world (think robots and automation), and we really don’t want a crash in user-provided code to make the entire system stop responding
The normal solution for the first point is to use some sort of plugin architecture, however using something like Dynamic Loading doesn’t solve the second point and the large amounts of unsafe code needed can arguably make the situation worse. For that we’ll need some sort of sandboxing mechanism.
Web Assembly has gained a lot of traction over the last couple of years as a way to write code in any language and run it in the browser, but it can be used for so much more.
Read the full article http://adventures.michaelfbryan.com/posts/wasm-as-a-platform-for-abstraction/