What's in a Name?
Where the name "Zena" comes from, the ancient Greek concept of xenia (guest-friendship), and what it means to be a great guest language for WebAssembly.
People often ask where the name "Zena" comes from.
The name draws inspiration from the ancient Greek concept of xenia (ξενία):
- The ancient Greek sacred law and custom of guest-friendship: hospitality, protection, and generosity extended to travelers and guests far from home.
- A reciprocal relationship of mutual courtesy between host and guest, obligating the guest to respect the host’s house, customs, and boundaries.
In WebAssembly, the execution environment (a browser, Node.js, Wasmtime, or an edge runtime) is the host, and the WebAssembly module executing within it is the guest.
Since Zena only targets WebAssembly it is inherently a guest language, and from the very beginning was designed to be a great guest:
- Aligned semantics and types: Zena's low-level semantics and types — primitives, references, functions, nullability and mutability, operations, field access, garbage collection, and more — are designed to mirror Wasm GC as much as possible, with as little indirection, emitted bytecode, and runtime overhead as possible.
- Native Wasm GC: Zena was created specifically for WebAssembly GC, so it doesn't bring its own garbage collector or memory management, and seamlessly integrates with GC-based hosts like JavaScript and the DOM.
- Thoughtful interop: Integrated WASI p3 component support, direct WIT imports, strings that can use host encodings, JS interop, virtual libraries that change per host environment, a borrow checking system for external resources... Zena knows that to be a good guest means to be flexible and adapt to your host.
Most languages running in WebAssembly today were originally designed for their own virtual machine, interpreter, or compiler targeting native executables with few runtime restrictions. To run in Wasm, they naturally need to bring along parts of their runtime—like a custom garbage collector, custom function call or property access logic, runtime type information, or mutable classes—resulting in larger bundles and heavier interop layers. That isn't a defect in their design; they were just designed for a different execution environment.
Zena has the benefit of a clean slate and of being designed specifically for the Wasm GC host environment, letting it deliver high performance, compact binaries, and seamless interop.
And yes, the Warrior Princess ​
Whenever I tell someone about Zena, another connection inevitably comes up: like Xena: Warrior Princess?
While xenia was the real etymological spark, we'll gladly take the association.
In the show, Xena was a wandering warrior with no permanent home - she was a perpetual guest across the ancient world. But crucially, Xena was a good guest. She respected hospitality, defended her hosts from harm, and stood up against those who violated the laws of hospitality.
Zena brings that same spirit to WebAssembly: lightweight, respectful of its host, fast, and designed to fit naturally into the WebAssembly ecosystem.
If you want to read more on how Zena makes a great WebAssembly guest language, check out the (draft) WebAssembly page in the guide, as well as our detailed catalog of WebAssembly alignment design decisions.