Rebuilding Prime Video UI with Rust and WebAssembly

https://news.ycombinator.com/rss Hits: 11
Summary

Transcript Ene: We're going to talk about how we rebuilt a Prime Video UI for living room devices with Rust and WebAssembly, and the journey that got us there. I'm Alex. I've been a principal engineer with Amazon for about eight years. We've been working with Rust for a while actually in our tech stack for the clients. We had our low-level UI engine in WebAssembly and Rust for that log. Previously I worked on video games, game engines, interactive applications like that. I've quite a bit of experience in interactive applications. Content I'll talk about challenges in this space, because living room devices are things like set top boxes, gaming consoles, streaming sticks, TVs. People don't usually develop UIs for these devices, and they come with their own special set of challenges, so we're going to go through those. Then I'll show you how our architecture for the Prime Video App looked before we rewrote everything in Rust. We had a dual tech stack with the business code in React and JavaScript, and then low-level bits of the engine in Rust and WebAssembly, a bit of C++ in there as well. Then I'll show you some code with our new Rust UI SDK and how that looks, which is what we use right now in production. We're going to talk a little bit of how that code works with our low-level existing engine and how everything is organized. At the end, we're going to go a little bit to results, lessons learned. Challenges In This Space Living room devices, so as I said, these are gaming consoles, streaming sticks, set top boxes. They come with their own challenges, and some of them are obvious. There's performance differences that are huge. We're talking about a PlayStation 5 Pro, super nice gaming console, lots of power, but also a USB power streaming stick. Prime Video, we run the same application on all of these device types. Obviously, performance is really important for us. We can't quite have teams per device type, so one team that does set top boxes, then another team does...

First seen: 2025-04-12 18:53

Last seen: 2025-04-13 04:58