  WebAssembly (abbreviated as Wasm) was initially introduced for the Web but
quickly extended its reach into various domains beyond the Web. To create Wasm
applications, developers can compile high-level programming languages into Wasm
binaries or manually convert equivalent textual formats into Wasm binaries.
Regardless of whether it is utilized within or outside the Web, the execution
of Wasm binaries is supported by the Wasm runtime. Such a runtime provides a
secure, memory-efficient, and sandboxed execution environment designed
explicitly for Wasm applications. This paper provides a comprehensive survey of
research on WebAssembly runtimes. It covers 98 articles on WebAssembly runtimes
and characterizes existing studies from two different angles, including the
"internal" research of Wasm runtimes(Wasm runtime design, testing, and
analysis) and the "external" research(applying Wasm runtimes to various
domains). This paper also proposes future research directions about WebAssembly
runtimes.
