Access and Feeds

WebAssembly – Portable Cross-Platform Deployment

By Dick Weisinger

The evolution of infrastructure running in data centers has gone from ‘bare-metal’ servers to virtual machines running on ‘bare-metal’ servers to containers like Docker running on virtual machines. The next step of the evolution is a new unit of deployment called WebAssembly.

WebAssembly (Wasm) is a portable binary format that encapsulates compiled C++, Javascript, and Rust code. The idea is similar to how containers can be portably deployed, but it further streamlines what’s needed to deploy an application. Wasm is similar to Java’s JVM and provides a secure operating environment that can work across hardware and operating systems.

The original target of Wasm was as an engine to be built into the major browsers like Chrome, Firefox and Edge, enabling browsers to run high-performance games, graphics, and other applications in the browser. It provides near-native execution speeds, so it would provide a performance improvement to browsers.

WebAssembly comes with WASI, the WebAssembly System Interface. WASI provides standard APIs for accessing system resources like the file system, networking, time, random numbers, and more. These capabilities also make it possible to use Wasm to build high-performance server-side and mobile applications, so it isn’t limited to just building browser-based apps.

Kevin Hoffman, a technology author, wrote that “the characteristics that we have long considered the holy grail of computing—small size, portability, security, performance—are all things that we get with WebAssembly and… it is very likely going to grow to be in or around everything we do in the future as software developers.”

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Leave a Reply

Your email address will not be published. Required fields are marked *

*