List of videos

The Smallest Thing That Could Possibly Work: WASM on Microcontrollers With TinyGo by Ron Evans
Wasm I/O 2024 / 14-15 March, Barcelona Slides: https://deadprogram.github.io/wasmio-2024/#/ Repo: https://github.com/deadprogram/wasmio-2024 In an action-packed session filled with live demos, I will explain the why and how of running WASM code on the smallest of processors: the microcontroller. Using TinyGo and other open source software, this session will show how WebAssembly can be used to do useful things even in the small places.
Watch
Understanding Wasm: How We Got Here by Chris Dickinson @ Wasm I/O 2024
Wasm I/O 2024 / 14-15 March, Barcelona Slides: https://www.neversaw.us/slides-no-notes.pdf Let’s put Wasm and the problems it solves into historical context: what are we trying to solve, and for whom? What has been tried before? What makes this effort more likely to succeed? We’ll examine the history of virtual machines, operating systems, & hypervisors from the 1960s through the 2010s. – Have you ever wondered why it is we can run Windows in a “virtual machine” while we run Java’s “Virtual Machine”? Have you ever struggled to explain concisely what Wasm is, what problem it solves, and what makes it different from previous attempts to solve the problem? This talk will give you the context you need. We’ll trace the history of virtualization from the early days of computing in the 60’s through to present day, talk about the trends that shaped the computing world, and point to the problems Wasm aims to solve for the industry at large.
Watch
Mind the Gap Between the Wasm Future and the Present by Taylor Thomas @ Wasm I/O 2024
Wasm I/O 2024 / 14-15 March, Barcelona Learn how to make the future work seamlessly with the present! This demo-heavy talk, led by experts, will show the pros and cons of the different options for integrating Wasm with current platforms like Kubernetes. You’ll leave with a clear idea of how to use Wasm in real situations today. – WebAssembly is a cool idea, but what does it look like to run it right now? The answer to that, whether we like it or not, will almost always involve Kubernetes. “How does Wasm interact with Kubernetes?” is a question every company, regardless of sector, wants to know. Guided by two Kubernetes and Wasm experts, this talk will look at the two distinct ways Wasm integrate with Kubernetes. The first is “Wrapped,” meaning that we wrap Wasm to look and act like a container. The second is “Alongside,” meaning that we integrate with Kubernetes, extending it with the best of WebAssembly. In this demo-heavy talk, we’ll explore the pros and cons of each approach, taking a close look at how each model operates and integrates with current tooling and processes. At the end of this session, attendees will have a clear understanding of the benefits and possible pitfalls of each approach, and the steps they can take to bring Wasm closer to the present while still looking forward to the future.
Watch
Sustainability with WASM? - faster, greener computing [Panel] @ Wasm I/O 2024
Wasm I/O 2024 / 14-15 March, Barcelona Panelists: Shivay Lamba / Saiyam Pathak / Saloni Narang / Danielle Lancashire Wasm enables greener computing through efficient architecture and virtualization. Our panel shares insights and best practices for using Wasm to reduce carbon footprint across AI, containers, and more. Join us to learn how Wasm optimizes performance and resources for sustainable software development. In an era prioritizing environmental sustainability, this panel explores Wasm’s role in greener computing. We discuss WASM’s efficient architecture, how Wasm can be used as an efficient virtualization layer, & its corresponding impact on eco-friendly software. We emphasize WASM’s optimized performance & resource management over traditional containers, the talk highlights its benefits in sustainable software development. We discuss one of the production case studies where we illustrate how the blend of software and hardware can power services while repurposing waste heat to provide electricity for consumer applications. Particularly, we also show Wasm’s application in AI inferencing, demonstrating its effectiveness in green computing. The audience would gain insights into using Wasm for green computing. The panel will share best practices for reducing cloud computing’s carbon footprint & applying these strategies in various tech endeavors, drawing from extensive experience in the field.
Watch
elfconv: AOT compiler that translates Linux/AArch64 ELF binary to WebAssembly by Masashi Yoshimura
Wasm I/O 2024 / 14-15 March, Barcelona Slides: https://2024.wasmio.tech/slides/elfconv-aot-compiler-that-translates-linuxaarch64-elf-binary-to-webassembly-wasmio24.pdf Repo: https://github.com/yomaytk/elfconv WebAssembly (WASM) enables us to use sandbox environments on edge devices and servers as well as browsers so that we can distribute platform-independent and secure applications. Previously, we could compile from several programming languages to WASM binary, but could not generate them if we cannot use source codes. In this talk, Masashi will introduce “elfconv”, an AOT compiler that translates Linux/AArch64 ELF binary into WebAssembly. This compiler generates an LLVM bitcode that translates every instruction of the original ELF binary based on remill (library for lifting machine code to LLVM IR) and uses emscripten to generate the WASM binary. we can execute the generated WASM binary on both browsers and host environments using emscripten or WASI Runtimes (e.g. WasmEdge, wasmtime). This presentation will describe the technical details (methods to translate to LLVM bitcode and emulate Linux syscall targeting WASM) of elfconv and the performance and future perspectives. However, elfconv is a work in progress, thus CPU instructions and Linux syscalls are partially supported now. To be able to convert any ELF binary, we should support any Linux syscalls and shared libraries, etc, the challenging functions that are important to WASM specifications, and we will implement those functions in the future. Therefore, we believe that this talk will become valuable to WASM specifications and ecosystems.
Watch
Everything about media files in WASM: fonts, images, audios all in rust by Dmitriy Kovalenko
Wasm I/O 2024 / 14-15 March, Barcelona Slides: https://www.icloud.com/iclouddrive/0b6grdvMmw5F0n5PKUXIzB2Iw#Wasm I made fframes. Fun fact: our fully featured video editor including media files loads faster than today’s SPAs. And we are doing A LOT of media processing: parsing font files for custom text shaping, decoding images, processing audios for visualization via fft, and many more. All of this in WASM. – I’d like to talk about interesting things which I faced while doing my pretty unique media processing for fframes. Because it’s a framework for developers we are doing pretty unique job by statically in-lining assets which dramatically improves performance and load times. Besides that we are doing a lot of runtime specific media processing work like parsing font files and manually shaping unique glyphs inside a WASM for text shaping, doing FFTs over the audio files buffers in runtime with WASM in a very lightweight stream-based approach, using the generated in WASM audio buffers (by merging audio files or applying EQ for example) to play them directly with web audio api. And many more like colors parsing in compile time specifically for WASM, and working with images, etc.
Watch
Building next generation of stream computation engine using Component Model by Sehyo Chang @ Wasm IO
Wasm I/O 2024 - Barcelona, 14-15 March Slides: https://2024.wasmio.tech/slides/building-next-generation-of-stream-computation-engine-using-component-model-wasmio24.pdf Join us for an insightful journey into revolutionizing stateful stream processing engines! In this talk, we’ll unveil how we harnessed the power of the WebAssembly (WASM) Component model to pave the way for the next generation of stream processing. Traditional engines like Flink and Spark have long dominated the scene but have limitations in developer experience, efficiency, and runtime footprint. Our innovative approach transcends these constraints, unlocking the full potential of stream processing for everyone, irrespective of programming language. Delve into the core of our ‘stateful service’ engine as we dissect the architectural and design choices that make it stand out. Discover the transformative role of the WASM Component model in enabling any language to function as a stream processor, liberating us from the Java and SQL exclusivity of the past. We’ll navigate through the challenges and limitations encountered during this groundbreaking journey. Learn how we tackled crucial issues, including leveraging WIT to express stream processing semantics and optimizing resource models. Real-world use cases and live demos will illustrate how we overcame these challenges, providing a glimpse into the future of stream processing. Don’t miss out on this opportunity to be at the forefront of the stream processing revolution!
Watch
Design Systems in Wasm: One year on the bumpy road to the component model by P. Dureau / J. Valverde
Wasm I/O 2024 - Barcelona, 14-15 March Speakers: Pierre Dureau / Jean Valverde Slides: https://2024.wasmio.tech/slides/design-systems-in-wasm-one-year-on-the-bumpy-road-to-the-component-model-wasmio24.pdf We used WebAssembly to package web Design Systems that run on any platform, language, or framework. To have a single build for server side and browser side rendering, we moved to the upcoming preview2 and its promising component model and we can’t wait to show you how it works. – Design systems are a great way to streamline the web development process and ensure consistency across different applications by collecting documented UI artifacts (components, styles, themes, layouts…). However, their implementations depend on specific backend languages, templating languages, or javascript frameworks, which limits their usability and portability. What if I told you that you could use the same web design system implementation on any platform, language, or framework? Sounds too good to be true, right? Well, that’s exactly what we did using WebAssembly to package executable design systems that can be run everywhere while being fast, compact, secure, and convenient. Our main challenge now is to reach full universality, with a single Wasm module for server side rendering (Python, Node, PHP, Java…) and headless applications (WebComponents, React, Vue…). So, we looked at the upcoming preview2 and its promising component model By the end of this talk, you will first learn how WebAssembly can help you package universal design systems. You will also discover the benefits and drawbacks of the component model, and how it can shape the WebAssembly future.
Watch
Capabilities all the way down - an OS for WASM by Sid Hussmann @ Wasm I/O 2024
Wasm I/O 2024 - Barcelona, 14-15 March Slides: https://2024.wasmio.tech/slides/capabilities-all-the-way-down-an-os-for-wasm-wasmio24.pdf WASI has two powerful security principles: Strong isolation and control over dependencies using capability-based security. In my talk, I demonstrate how to build resilient systems with this approach and reduce the overall attack surface by over 99%. – In my talk, I present Gapfruit’s journey of running WASM code on top of a microkernel operating system with capability-based security for industrial IoT solutions. When it comes to systems engineering, we live in exciting times. On the one hand, we have projects, such as Genode and seL4, that push the boundaries for a solid computing foundation from the bottom up. On the other hand, the Zero-Trust movement pushes the industry to combine public-key infrastructures with TPM-backed device identities. Third, we can witness a trend from the cloud natives who try to free us from much of the complex and heavyweight legacy code bases with new runtimes such as WebAssembly/WASI on the application layer. The systems community often uses the term “turtles all the way down” to describe the concept that complex systems build on top of each other. The term originates from an ancient anecdote where someone claims that the Earth rests on the back of a giant turtle, and when asked what the turtle stands on, the response is, “It’s turtles all the way down.” These layers of abstraction also have an impact on security. “Capabilities all the way down” is a pun that mitigates many security implications using capability-based security. Compared to other runtimes, WASI shines from a security perspective because of two concepts: Isolation and capability-based security. Regarding WASM/WASI, capability-based security refers to explicitly granting permissions (capabilities) to execute specific operations rather than relying solely on traditional access control mechanisms. The capability-based security boundary of WASM/WASI stops where the WASM code is spawned from: The operating system. In other words, the security of the code running inside the WASM runtime depends on the integrity of the operating system. E.g., if an attacker exploits a bug in a NIC driver on a Linux host, the integrity of the whole system, including the WASM code, is compromised. In my talk, I want to demonstrate how we utilize strong isolation in combination with capability-based security all the way down to the hardware. With Gapfruit OS, even Linux drivers run in an isolated environment - taking away much of the severity of an exploited bug in the same NIC driver mentioned before. I will further demonstrate the combination of the topics above in a live demo. The demo will showcase the zero-touch provisioning capabilities of an IoT gateway running a Gapfruit OS: The device will boot and connect to Azure with TPM-backed credentials. The desired state configuration of its digital twin will trigger the deployment of a WASM app with WasmEdge to the device.
Watch