Hasty Briefsbeta

双语

Rebuilding Prime Video UI with Rust and WebAssembly

a year ago
  • #WebAssembly
  • #UI Development
  • #Rust
  • Prime Video使用Rust和WebAssembly重构了客厅设备的用户界面,从原先React/JavaScript与Rust/WebAssembly并存的双技术栈,过渡到统一的基于Rust的解决方案。
  • 客厅设备(机顶盒、游戏主机、流媒体棒、智能电视)存在性能差异大、硬件多样化、原生代码更新困难等独特挑战。
  • 新架构采用具备可组合组件、信号系统和效果机制的Rust UI SDK,支持布局动画与瞬时页面切换等高性能UI功能开发。
  • 底层引擎采用实体组件系统(ECS)管理复杂度,通过系统机制更新渲染、布局和资源管理相关组件。
  • 尽管从JavaScript/TypeScript转向Rust,借助UI SDK中熟悉的开发模式和宏功能,团队仍保持较高开发效率。
  • 性能提升显著,低端设备输入延迟从247毫秒降至33毫秒。
  • 挑战包括WebAssembly生态尚不成熟、编写无崩溃代码的难度,以及需要培养开发者适应Rust的错误处理机制。
  • Bytecode Alliance为其在生产环境使用WebAssembly及WebAssembly系统接口(WASI)提供支持。