VOOZH about

URL: https://thenewstack.io/why-webassembly-modules-could-be-the-new-de-facto-unit-of-compute/

⇱ Why WebAssembly Modules Could Be the New de Facto Unit of Compute - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2021-02-25 09:14:51
Why WebAssembly Modules Could Be the New de Facto Unit of Compute
contributed,
Cloud Native Ecosystem / Software Development

Why WebAssembly Modules Could Be the New de Facto Unit of Compute

WebAssembly is enabling something special, and that is the ability to have reusable modules of code that can be run anywhere, and which can be composed to build powerful software with less complexity.
Feb 25th, 2021 9:14am by Connor Hicks
👁 Featued image for: Why WebAssembly Modules Could Be the New de Facto Unit of Compute
Feature image via Pixabay.
Connor Hicks
Connor Hicks is a Staff Developer based in Ottawa, Canada. Connor works on security and distributed systems projects, leading Product Discovery at 1Password as well as building the Suborbital open source project. Connor is a strong believer in building security and privacy into the core of all software, and is exploring the next generation of web service development with technologies like WebAssembly.

You may have heard about WebAssembly at some point over the past few years. It’s been called “the fourth language of the web browser,” and while that is one way to look at it, it certainly isn’t even close to the whole story. Since WebAssembly is actually a platform-agnostic binary format for executables, talking about where it runs is just as important as what it does. Over the past year or two, WebAssembly has blown past the browser and is now lending its strengths to other domains such as embedded systems, IoT, and server-side development.

I’ve been working on the cloud native WebAssembly framework Atmo for about a year now, and the possibilities I laid out here have me very excited about the future of the ecosystem. I see advancements every week, with new open source projects and cool use-cases popping up everywhere.

It’s well known that the past decade has seen the software industry shift from bare metal to virtual machines to containers. The current era has many forms of cloud compute vying for your attention such as Kubernetes, various types of serverless, and more. The problem has become the immense complexity of these solutions — and that doesn’t even begin to cover the need to integrate client-side applications into the mix. WebAssembly is enabling something special, and that is the ability to have reusable modules of code that can be run anywhere, and which can be composed to build powerful software with less complexity.

Let’s cover the basics of WebAssembly; it’s a bytecode format that can be a compilation target for many languages. This simply means that when writing code with Rust, C++, Swift, and more, you can target WebAssembly instead of the executable binary or static library that’s normally produced. The resulting module is language-agnostic and can be executed in a variety of environments. WebAssembly modules are completely sandboxed when they run, meaning that third-party or even potentially unsafe code is less terrifying than your average dependency from NPM or GitHub. It even means that when a WebAssembly module crashes, it doesn’t affect anything outside of its sandbox. WebAssembly can achieve near-native performance (by that I mean faster than JavaScript), and there are a number of different runtime environments both inside and outside the browser to choose from.

Several things differentiate these modules from other code libraries. WebAssembly modules are loaded at runtime, which allows your application to choose when and how a module should be loaded. It also means that you can hot-swap modules without terminating the process or re-compiling your code. This can be quite beneficial when rolling out new versions of your code, as it increases performance and makes deployments faster. These modules are also platform and architecture-independent, meaning you don’t need to create versions for Mac, Windows, Linux, and the various processor architectures they support. The WebAssembly runtime will run natively on those platforms and execute the module no matter how it was produced.

One of the things that gets me most excited about WebAssembly is the ability to share code between client and server. You can imagine building code that not only shares types, but also the business logic associated with it. WebAssembly allows you to write something like an authentication module once, and then run it on your server, in your web app, and in your native mobile and desktop clients. That is not impossible with traditional methods today, but WebAssembly makes it almost trivial. This kind of practice promotes good code encapsulation, sane abstractions, and overall good code design.

Another compelling aspect about WebAssembly modules is the ability to compose polyglot applications easily. Today, it requires a fair amount of engineering work to build systems that interoperate between languages. The microservice pattern incorporates this but often requires writing underlying libraries and shims to make it scalable and intuitive for developers to adopt, not to mention dealing with the potentially volatile network. WebAssembly modules are language-agnostic once compiled, so running a module compiled from Rust alongside one compiled from Swift in the same process is not only possible but straightforward. I can envision a future where a SaaS vendor distributes its API libraries using a set of WebAssembly modules instead of libraries written in Go, Rust, NodeJS, Ruby, etc.

One last aspect of WebAssembly that I have begun to explore is the ability to dynamically decompose an application and have it run across multiple layers of the network. Imagine writing a set of modules that are bundled together into one application, and upon being deployed, begins executing across your centralized cloud environment, an edge network, and your users’ devices, all without you needing to choose what runs at each level. I can envision an application that intelligently sends certain modules to your CDN to be executed in the cloudless than 50ms of latency away from your user, and even some modules that get downloaded to the user’s browser to be executed right on the page. These are some of the incredibly exciting opportunities available to us if we adopt the WebAssembly module as the de facto unit of compute.

Atmo is part of Suborbital, which is a family of open source projects dedicated to helping developers build powerful cloud native applications using WebAssembly. If you’re interested in taking advantage of what WebAssembly has to offer or want to help tackle these very compelling problems, I hope you’ll come to check it out!

TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.