|WASI - WebAssembly Everywhere!|
|Written by Ian Elliot|
|Wednesday, 03 April 2019|
How to describe WebAssembly?
At this point you might be thinking that this is just another bytecode-based way of implementing a language - think JVM or the .NET JIT - and this might be making you think why just the browser?
This is what the WebAssembly System Interface, WASI, is all about. You can think of it as a set of standard functions which connect WebAssembly to the operating system it happens to find itself in - a sort of standard library for WebAssembly with the library soaking up the differences between operating environments. The end result would be that you could write your program in a language of your choice - Rust, C or whatever - compile it to WebAssembly and with the help of WASI-compliant systems run it everywhere.
Yes, it's "Write Once, Run Anywhere" all over again and, in case you have forgotten, this was the promise of Java and we all know many reasons why it doesn't work as well as it should.
It is early days and so far only wasi-core has been worked on:
"wasi-core will contain the basics that all programs need. It will cover much of the same ground as POSIX, including things such as files, network connections, clocks, and random numbers."
You can see the idea in action in the following video:
None of this is super-clever, and similar things have existed before. Exactly how all of these libraries are going to come into existence isn't clear. It is clear that it is a lot of work and a great deal is going to be down to the detail of implementation.
It is also becoming increasingly clear that this effort isn't anything much to do with the web or web browsers. It could have been invented without a mention of a web browser and then extended to run in the browser. This is a completely new attempt at "Write Once, Run Anywhere" with a new low-level bytecode and VM.
WebAssembly with WASI is undeniably a reinventing of the wheel. What isn't clear is if it will be a better wheel.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 03 April 2019 )|