After a week spent in the company of WebAssembly (Wasm) experts and enthusiasts, we've come away from the Linux Foundation's inaugural WasmCon with one conclusion - WebAssembly is capturing developer imagination in all sorts of industries. As the Bytecode Alliance and W3C Wasm Working Group release the latest stable iteration of Wasm standards - WASI-preview 2.
- A few major themes came through during the event. By far, the WebAssembly Component Model dominated conversations with many looking to understand how it works and how close components are to stabilization. Language interoperability was also front of mind, and there was lots of fresh innovation on show: from Siemens' use of Wasm in embedded systems to fresh demos showing componentize-py in action.
_We couldn't attend every session _(there were just too many) but we've identified the major themes and highlighted a few of the best talks. We hope you find this useful. You can, of course, see every session on The Linux Foundation's YouTube channel.
WebAssembly Standards and The Component Model
WASI Standards and the Component Model: Transforming Application Development Forever - Liam Randall, Chief Executive Officer, Cosmonic
If there were any doubts that components are real, they were dispelled during Liam's keynote on Day 1 of WasmCon. Liam asked us to imagine breaking our applications into their component parts so we can hot-swap those components at runtime. In a simple, interactive demo, Liam shows how it's possible to create componentized applications and run them anywhere. We see Liam deploy 3 Wasm components at opposite ends of the U.S., on AWS, Azure and on a Raspberry Pi attached to his badge. Crucially, he shows how we can send requests to the Pi live via a QR code, which allows audience members to send and display personalized messages. As Liam says: “If that doesn't show us that the Component Model is ready for prime time, I don't know what does.”
Are we Componentized Yet? - Bailey Hayes, ByteCode Alliance TSC Dir. and CTO Cosmonic
Bytecode Alliance TSC Director (and Cosmonic CTO) asks the question on everyone's minds - are we componentized yet? From her vantage point at the heart of the development of WASI standards, and the Component Model, Bailey gives a clear account of the journey so far. And what comes across is just how far we've come. In the last few months alone, the Bytecode Alliance has launched common components, guest languages, bindings and SDKs, alongside a registry and user-friendly documentation. Whilst Bailey doesn't claim we're completely componentized…yet…we're almost there. She brings the journey to life with a 'station-by-station' view of the innovation milestones already reached, and the stops on the journey still to come (testing, resources, linking etc.), expected end 2023, early 2024. A community effort, we also meet the personalities involved, and their individual project roles.
Note: For an up-to-the-minute 'state of the union' account of the Wasm Core Spec, WASI Standards and Components roadmaps, this is a great resource.
What is a Component (and Why)? - Luke Wagner, Fastly
The WebAssembly Component Model is transforming how we build, distribute and even think about software but what is a component, and why are they important? During his talk, Luke Wagner shows how it is possible to break applications into lean, interchangeable components, making them lightweight and portable. After a whistle-stop tour of Wasm, Luke takes us through the benefits of components - and there are many. Components have an inherently heightened security posture, they also come as polyglot packages bringing language interoperability. Free SDKs mean there's less groundwork to do for developers, and virtual platform layering decentralizes and streamlines the delivery and maintenance of applications across different devices and platforms. Luke then discusses the relationship between WebAssembly System Interfaces (WASI) and components, and outlines how far the Component Model has come in the context of WASI-Preview 2 (recently reached MVP). This is essential viewing for those keen to get a proper understanding of components and how they will change the lives of developers everywhere.
Industrial Use Cases
Embedding WASM in the Future - Chris Woods, Siemens Technology USA
With a long history in industrial innovation, Siemens came to WasmCon with a unique perspective on the opportunity to transform the embedded software world with Wasm. Chris Woods talks us through some of the famous embedded use cases - Prime Video, Disney+, Midokura, Bosch. He explains how Wasm's tiny but performant footprint, and WASI's tooling support, should solve some of the problems that containers bring: “...you can't put Kubernetes on an esp32,'' he comments. Wasm is unique in that Wasm modules are single binaries capable of running anywhere - even the smallest devices. Chris explains how important it is to consider what we want Wasm to look like in 30 years and believes: “Wasm has the potential to be the de facto standard for small form factor, portable, distributable, software components.”
**Opinion: **It's really exciting to see Wasm be successful in different industries. We predict next year's event will see a more diverse mix of use cases coming to the fore - and a few more big name companies running Wasm in production.
Leveraging WASM to Improve Quality and Flexibility of the API Plugin Ecosystem at Goldman Sachs - Rohan Deshpande, Goldman Sachs
Goldman Sachs is one of those early-adopters of Wasm that is already seeing real commercial value from its use. Rohan Deshpande manages an API platform that provisions, mediates, secures and manages APIs at scale, both on-premise and in the cloud. For Rohan, APIs are supercharged with Wasm - during his talk he explains the difficulties of integrating Wasm modules with existing infrastructure but how the benefits seriously outweigh these challenges. With Wasm, the team has achieved 83% code coverage (target 70%), has shared 35% code between runtimes and converted 55% of plugins - all within the existing CI/CD pipeline. Rohan expects his first plugin to launch in production next year and believes strongly that an active ecosystem is the secret to staying on top of rapid change.
The Buzz About Green Tech: WebAssembly's Impact on Carbon Footprint Reduction - Christoph Voigt, Liquid Reply GmbH
The technology industry has had to make peace with its role in increasing carbon emissions. Despite arguments to the contrary, cloud computing and containers have exacerbated the problem. Resource underutilization is rife in container estates and cloud computing still requires energy-hungry datacenters. Wasm has the potential to truly crack this perennial issue. As Liquid Reply's Christoph Voigt demonstrates, Wasm's characteristics could contribute to dramatic reductions in energy consumption.
Multi-tenancy is one way to drive better utilization of hardware. Wasm's security profile makes it ideal for multi-tenancy scenarios and maintains the delta between average and peak usage. Secondly, Wasm is ideal in short-lived functions - faster scaling with thousands of functions on a single machine. Take a look at the recording for a dive into the Wizer project which has proved it's possible to preinitialize Wasm modules to skip instantiation. With this small advance, start-up latency is dramatically reduced and instantiation is 1.35 - 6 times faster with Wizer.
Opinion: The way we talk about technology in the context of energy efficiency could easily be criticized without clear evidence. For the first time, Wasm presents a real opportunity to reduce carbon footprints and we don't think it will be long before we'll see real-world proof of this.
When Wasm Meets Cyber-Physical Systems: A Discussion of WebAssembly in Real-Time, Safety-Critical Systems - Emily Ruppel, Research Scientist, Robert Bosch LLC
As Bosch's Research Scientist, Emily Ruppel describes, traditional techniques for managing complexity in distributed systems are too resource intensive and cannot meet real-time guarantees. The reason for this is the tight-coupling of hardware and software - this makes building microservices for real-time, safety critical systems difficult. In this talk, Emily discusses the role of WebAssembly - and its easily embeddable design - as a route to lighter-weight virtualization in resource-constrained environments. Bosch's heritage in automotive and industrial manufacturing guides the discussion as she demonstrates Wasm's value in decoupling applications from hardware.
The 'build once' dream becomes real in this scenario. Wasm becomes a 'narrow waist' of automotive software: fully decoupling programming languages from the underlying hardware and allowing applications to run across any mix of hardware. Emily goes deep into industrial and automotive use cases - we couldn't summarize all the great points she made so watching this recording is essential viewing.
AI and Generative Computing
Machine Learning in Fastly's Compute@Edge - Andrew Brown, Intel & Matthew Tamayo-Rios, Fastly
The intersection between new generation data technologies and WebAssembly came into focus at this
year's WasmCon in several talks and panel discussions. The first of these dealt with the value of
bringing Machine Learning to Wasm, and how to get there. Being prototyped in Fastly's Compute@Edge
wasi-nn allows users to apply ML functionality to edge-processed HTTP requests. In this
talk, Andrew and Matthew demonstrate how to run an ML model within a Wasm module using WASI Neural
wasi-nn. It hasn't been an easy process, the team explains how they overcame several
challenges to get there: namely, Wasmtime's sensitivity to guest processes; memory/module size
limits; and sandbox challenges with bespoke models. Finally, they show how, with a Kserve back end,
it's possible to run smaller models locally, and larger ones on prescribed hardware. Kserve also
manages model life cycles outside Wasmtime, which solves existing sensitivities with guest
Unraveling the Magic of Two Hot Trends: WebAssembly and Generative AI - Larry Carvalho, RobustCloud; Radu Matei, Fermyon; Aparna Sinha, PearVC; Tyler McMullen, Fastly
With Wasm and Generative AI drawing attention from all corners of industry, some well-known faces in Wasm came together to discuss the impact of combining these technologies. They take us through some of the big shifts in the last 2 decades - web, mobile, ML, AI - and suggest that the next shift is coming from breakthroughs in generative AI. Arguably, the biggest shifts have come in emergent behavior (beyond ~6 billion parameters) and self-supervised learning on unlabeled data sets. Wasm has the potential to bring enhanced security and the ability to ship fine-tuned models to any location. The group concludes that providing a mix of fine-tuned, specialized models is the key to utility for workflows: it preserves data moats and intellectual property; enables personalization; grants control and flexibility over updates; improves latency; and improves cost efficiency with smaller footprints.
Opinion: A bit like Wasm's symbiotic relationship with Kubernetes, it's amazing to see complementary use cases emerge in next-generation technologies. It's going to be interesting to see how these solutions combine in the wild.
Our Challenge of the WEdge Project for the Use Cases of Wasm on Edge AI, Midokura - Tatsuya Kato and Mihai Dumitriu
As a part of Sony Semiconductor Solutions, it's great to see Midokura making an appearance on the WasmCon stage. Tatsuya and Mihai have helped develop AITRIOS, part of its WEdge next-generation commercial Edge AI sensing platform. In their talk, they describe some of the motivations behind this major innovation. A major driver was serious challenges in porting IoT code - memory isolation and dynamic loading are impossible at the edge; syscalls aren't secure and code cannot be updated once it's shipped. WEdge was created to run on low-capability devices and runs alongside IoT platforms - it creates, deploys and manages applications across diverse locations. The team actively contributes to WAMR and is considering opening the code to WEdge.
Introducing Componentize-Py: A Tool for Packaging Python Apps as Components - Joel Dice, Fermyon Technologies
The WebAssembly Component Model is an ideal vehicle for building polyglot apps in a secure and efficient way. In order to make building and deploying Python-based components as easy as possible, Fermyon's Joel Dice has developed componentize-py which packages a Python application, and all its dependencies (including native extensions), as a single component. Joel's illuminating talk covers some of the intricacies of componentize-py including some neat new features - build-time code generation, pseudo-dynamic linking and pre-initialization. Of particular note is Joel's commentary around the differences between status, module and component linking - he suggests they are all useful and digs into the pros and cons in each case.
Develop Wasm Applications with Docker - Angel M De Miguel Meana, VMware & Justin Cormack, Docker
Does Solomon Hykes' famous comment about Wasm and containers continue to resonate? Docker's Angel M De Miguel Meana and VMWare's Justin Cormac believe so. Having worked with Adobe to bring Wasm to its Kubernetes estate, it was great to see how others are experimenting with containers and Wasm. Docker has been working on an incremental path for existing docker users to Wasm - a natural progression to the point where Wasm can integrate where it makes most sense. The vision is to be able to mix and match containers and Wasm with mooted benefits including portability, repeatability and security isolation. They strongly contend that WASI standards are the key to making this a reality. The major takeaway, and one that we heartily agree with, is that you can start running Wasm today, with tools you're familiar with and have been using for years.
**Opinion: **This is a unique take on an interesting challenge. Check out some of the recent work done by the maintainers of CNCF wasmCloud - in particular, wadm (wasmCloud Application Deployment Manager). Also, it's worth stopping by Cosmonic-Connect-K8s - a familiar way to connect Wasm to your Kubernetes clusters. Meeting Kubernetes developers where they are is a great way to encourage Wasm adoption in the cloud native ecosystem.
Unleashing the Power of WASM: Revolutionizing Database Scalability and Application Architectures - MotherDuck
Where is Wasm currently being used in production databases? And, what are the benefits (and challenges) of bringing local compute out of the infrastructure to hybrid applications? According to RJ Atwal, Founding Engineer at MotherDuck, the notion of processing data closer to users is not a new one but, with Wasm comes a way to more easily liberate databases from conventional environments. RJ walks us through the common challenges of working with SQL and its complex ecosystem, and describes a future where compute and data are portable. He focuses on *ETL (Extract; Transform; Load) as an ideal use case for Wasm, the key benefit being the ability to shard data more locally. If data can be transformed and routed close to the user, this reduces the need for caching at the edge and improves both efficiency, lowers latency and boosts security.
Untangle That Spaghetti Code; Make Dreamy Fettuccine Instead - Taylor Thomas & Bailey Hayes, Cosmonic
Most of us get into software development because we love the creative process. Application development should feel like cooking your favorite dish, from a tried and tested recipe, full of your favorite ingredients. The reality is, every time we create a new application, we import a tangled mess of spaghetti-like code, full of vulnerabilities. In their lively session, Bailey and Taylor show us how Wasm relieves the pain by untangling that code, stripping away entire layers of non-functional code and eliminating vulnerabilities…to reveal the Dreamy Fettuccine underneath. Watch out for the live demos showing how a single unit of code can build different applications, and how wasmCloud allows dynamic reconfiguration and re-architecting according to specific needs.
Deploying Your Backend Like a CDN With Wasm - Brooks Townsend, Cosmonic
With a particular interest in network optimization, Cosmonic Lead Engineer, Brooks Townsend takes a look at whether a CDN (content delivery network) approach in the back end could work as well as it does in the front end. We know that CDNs solve latency and performance issues in applications running on devices all over the world. They do this by caching data in edge nodes, closer to users. In his live demo, Brooks shows how, when combining the network performance of NATS with wasmCloud (the CNCF Wasm Application runtime), we can push applications as close to the user as possible. Deploying backends on the edge closer to the user saves the developer money on egress transfer costs and makes applications perform quicker, a win-win for app developers. Using a real-world use case, Brooks demonstrates how a wasmCloud application can span clouds and edges, even turning off the WiFi on his laptop to show how apps can seamlessly process offline and then reconnect without any complicated logic.
SQLite in Wasm: A Glimpse into the Future of Shared Libraries - Carl Sverre, Amplify Partners
One of the most exciting areas of Wasm development is how it will allow us to run a single application in multiple environments, even tiny devices. Shared libraries are a way to spur edge innovation but a remedy is needed for the bloat and impurities libraries often bring to code. Carl Sverre of Amplify Partners believes the secret is a local-first approach where zero latency, offline reliability and real time collaboration come as standard. In his interesting demo, Carl shows how his core library in Rust, embedded with SQLite enables offline-first collaborative workloads, capable of running between browser tabs and the edge. He also explains how Wasm's capability-based security model cracks common security vulnerabilities at the edge by stripping away layers of unnecessary and infected code.
Opinion: Carl performs one of the coolest live demos that we've seen to-date, open sourcing a project live on stage. Many different talks consider how Wasm can be used to improve existing use cases, but this talk shows an exciting perspective from an entirely new project built with the benefits of Wasm in mind.
Sandboxing Your Sandbox: Leveraging Hypervisors for WebAssembly Security - Danilo (Dan) Chiarlone, Microsoft
In multi-tenant environments, security issues are often rife and we've been on a mission to Sandbox our multi-tenant systems as technology has evolved. Hypervisors first tackled the problem in VMs, then containers and, now, they have the potential to do the same in Wasm deployments. As Wasm grows in popularity, and is deployed in multi-tenant environments, new security challenges will surely emerge. As Microsoft's Dan Chiarlone explains, whilst sandboxed and with _memory _isolation, Wasm lacks some of the advanced isolation required to run microservices in the public cloud - stack smashing protection, for instance is an area not yet covered within the WebAssembly core specification. Dan demonstrates how hypervisors could bring this necessary isolation to Wasm to make deploying Wasm projects in public clouds easier and more compliant.
Piercing the Veil of WebAssembly in Production - Benjamin Eckel, Dylibso
Many of us will move Wasm applications (or modules) into production over the next few months - an incredibly exciting thought. As adoption grows, the need for real-time monitoring and diagnosis in production will become all important. As Dylibso's Benjamin Eckel describes in his talk, existing observability tools don't yet operate with Wasm, and perform poorly at the edge. He describes the “ambiguous IPC layer” in Wasm which misleads observability tools into assuming there is only one tenant and that they can make IPC calls efficiently. The problem is, many companies won't deploy business logic to production without observability in place. Benjamin introduces us to his Observe toolkit; an open source standard and set of libraries that allow the host to extract observability data from guest code. Leveraging open telemetry (traces, metrics and logs), the Observe SDK is embedded in the host to avoid these problems. Benjamin demonstrates how Observe blends Wasm traces, metrics and logs with traditional system system metrics.
Let's Build a Linux Just for Wasm! - Andrew Randall & Ralph Squillace, Microsoft
Microsoft's Ralph Squillace and Andrew Randall's talk starts with a clear premise; should Wasm echo containers and have a Wasm-optimized Linux distribution? CoreOS was designed with one purpose in mind - to deploy Docker containers. Arguably, we need a minimal Linux distribution replete only with the things you need to deploy Wasm modules securely and at scale but where's the need? Ralph argues that, as with containers, running Wasm at scale across geographies creates major security risks and operational challenges. Andrew then goes on to describe how we can bring the same benefits that container-optimized Linux brings to containers, to Wasm: minimal distribution, partitioning, declarative provisioning and automated updates. This is all illustrated through a demonstration of a Wasm-optimized version of Flatcar Container Linux, a current community project in the process of being submitted to the CNCF.
The array of insightful talks at WasmCon highlighted the versatile landscape and profound capabilities of WebAssembly. Key insights underscored major developments in the WebAssembly Component Model and showcased the adaptability that comes from enhanced language interoperability. Industrial use cases were spotlighted, articulating Wasm's practical applicability and efficacy across a range of environments. The integration between WebAssembly and AI, as well as the technology's potential role in reducing the technology carbon footprint, emerged as pivotal conversations. With stabilization of WebAssembly components and time for different companies, organizations, and individuals to build and execute with the technology, the future of WebAssembly is taking shape and making a serious impact.