Wado

Wado

A Rust-flavored programming language built for WebAssembly and WASI

Open Source
4.4 (10 reviews)

Gallery

About Wado

Wado is a programming language that compiles exclusively to WebAssembly, targeting the Component Model and WASI platform. Its defining characteristic is that platform boundaries and language effects are unified at the type level, meaning WASI capabilities appear directly in function signatures rather than being implicit runtime behaviors. When a function uses standard output, network access, or filesystem operations, it declares those capabilities explicitly in its type signature with an effects annotation. This makes side effects visible in the code's structure rather than hidden in implementation details, producing programs where what you read is genuinely what executes.

The language produces remarkably small binaries because it targets WebAssembly GC where the host runtime provides garbage collection. No memory management runtime gets embedded in the compiled output, eliminating the bloat that most compiled languages add for automatic memory handling. This architectural decision shapes everything about how Wado code compiles and executes, making it particularly suited for embedded scenarios, edge computing, and environments where binary size directly impacts load time or resource constraints. The lean output means faster cold starts and lower memory overhead in production deployments.

Wado's type system mirrors the WebAssembly Component Model's structure precisely, distinguishing between variant, enum, and flags types in ways that map cleanly to the underlying platform. It includes static typing with generics including variadic type parameters for flexible data structures, closures and lambda expressions for functional programming patterns, pattern matching through match expressions for control flow, and trait based abstractions with associated types for extensible designs. Error handling works through Result and Option values rather than exceptions, following explicit error propagation that integrates naturally with the effects system.

The language deliberately avoids macros, implicit conversions, and any types that would obscure what code actually does. This explicit design philosophy means analyzing a Wado program requires no hidden knowledge about compile time transformations or surprising type coercions. The transparency benefits both human readers trying to understand unfamiliar code and AI agents or automated analysis tools that need to reason about program behavior reliably. Template literals exist for compile time execution when needed, but their behavior remains predictable within the language's explicit design constraints.

The standard library covers practical needs including JSON parsing and serialization, cryptographic digests, collections with standard data structures, temporal operations for date and time handling, HTTP routing primitives for web services, and CLI argument parsing for command line tools. These components ship as part of the language ecosystem rather than requiring external dependency management, simplifying the toolchain for new projects while ensuring consistent behavior across deployments.

Developers can write and run Wado code directly in the browser through the online playground, which compiles and executes entirely client side with no server requirements. The playground includes an editor with syntax highlighting and real time output visible alongside the code, making experimentation immediate. Language server features providing code intelligence require a JSPI capable browser like Chrome or Chromium 137 or newer, though basic editing and execution work more broadly. One file scripts support shebangs for quick execution in development workflows without project scaffolding.

Wado remains experimental but functional for its intended purpose of producing type safe, compact WebAssembly modules with explicit effects tracking. The full potential depends on three ecosystem developments still in progress across the broader WebAssembly community: browser Component Model support for running components in web contexts, WASI 1.0 standardization for stable system interfaces, and garbage collected type interoperability across Component boundaries for seamless language interoperation. Developers building for WebAssembly who care about binary size, explicit effects, deterministic behavior, and forward compatibility with the Component Model will find Wado worth exploring as these platform capabilities mature. The project is open source under MIT license, designed by FUJI Goro.

Key Features

  • Static typing with generics and pattern matching
  • Compiles to WebAssembly Component Model
  • Browser based playground and editor
  • VS Code extension with LSP support
  • No runtime overhead via Wasm GC
  • Explicit WASI capabilities in types

Pros & Cons

What we like

  • Produces small Wasm binaries without bundled runtime
  • Predictable design with no hidden control flow
  • Open source under MIT license
  • Works in browser with no install required

Room for improvement

  • Experimental status with limited ecosystem maturity
  • Targets only WebAssembly, not general purpose
  • Playground requires Chrome 137+ for JSPI
  • Smaller community than established Wasm languages

Frequently Asked Questions

What is Wado?
Wado is a statically typed programming language that compiles exclusively to WebAssembly and WASI. It borrows syntax ideas from Rust and TypeScript but targets only the WebAssembly Component Model, producing small binaries with no runtime overhead.
Is Wado free to use?
Yes. Wado is open source under the MIT license. The compiler, playground, VS Code extension, and all documentation are freely available.
Who is Wado for?
Developers embedding small, type safe WebAssembly modules into browsers, edge functions, or plugin systems. It suits anyone who wants predictable Wasm output without the overhead of general purpose language runtimes.
How stable is Wado?
The project is experimental but functional. Core language features work for real use cases, and the maintainers publish a language spec and performance dashboards. Full maturity depends on broader WebAssembly ecosystem developments.

Best For

Embedding type safe Wasm modules in browsersBuilding WASI plugins for edge runtimesPrototyping WebAssembly components quicklyLearning Wasm internals through a legible language

Featured in

Alternatives to Wado

View all

Reviews (10)

S
Sana Rossi

Decent with some rough edges

Started using Wado casually, now it is pinned in my dock. What stands out is how it handles open source under mit license. Found it works best for building wasi plugins for edge runtimes. My only gripe is experimental status with limited ecosystem maturity. Easy yes for anyone weighing the same trade offs.

4/2/2026 14 found this helpful
J
Jordan Okafor

Finally something that fits

Started using Wado casually, now it is pinned in my dock. Their take on produces small wasm binaries without bundled runtime is genuinely good. The thing I keep coming back to is how reliable it is. Found it works best for embedding type safe wasm modules in browsers. Easy yes for anyone weighing the same trade offs.

7/11/2026 12 found this helpful
N
Nia Lund

Two months in, no regrets

Wado has quietly become part of my daily flow. It does what it says, which is rarer than it should be. Mostly using it for building wasi plugins for edge runtimes. Hard to imagine going back to my old setup.

6/24/2026 9 found this helpful
M
Mia Lima

It just works

Tried Wado on a side project first, then rolled it out everywhere. Their take on browser based playground and editor is genuinely good. Glad I made the switch.

6/25/2026 6 found this helpful
T
Theo Gupta

Quietly excellent

Three months of Wado later, here is what holds up. Got real value out of produces small wasm binaries without bundled runtime. Worth it for what I get out of it.

5/6/2026 6 found this helpful
M
Mia Lund

Two months in, no regrets

Came to Wado after getting frustrated with what I had before. Got real value out of no runtime overhead via wasm gc. Worth it for what I get out of it.

6/8/2026 5 found this helpful
R
Riley Martin

Two months in, no regrets

Hadn't planned on switching, but Wado was hard to ignore. The thing I keep coming back to is how reliable it is. Found it works best for learning wasm internals through a legible language.

5/10/2026 3 found this helpful
N
Nia Zhou

Recommended without reservation

Three months of Wado later, here is what holds up. Support actually answered when I had a question, which surprised me. Setup was painless and I was productive the same day. Found it works best for prototyping webassembly components quickly.

3/24/2026 3 found this helpful
S
Sam Han

Quietly excellent

Came to Wado after getting frustrated with what I had before. The core workflow is smooth once you are set up. Recommending it to people in a similar spot.

8/10/2026
A
Anders Zhou

It just works

Found Wado on a Show HN thread and I am glad I clicked. Got real value out of produces small wasm binaries without bundled runtime. Mostly using it for learning wasm internals through a legible language. Would sign up again without thinking twice.

8/6/2026

Badge builder

Add Wado to your website

Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.

Wado badge preview
<a href="https://toolindex.net/tools/wado-lang?ref=badge" target="_blank" rel="noopener">
  <img src="https://toolindex.net/badge/wado-lang/medium.svg" alt="Wado - Listed on Tool Index" width="180" height="50" />
</a>

How to use the badge

  1. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 3. Paste it into your footer, homepage, or press page.

Standard badge available

The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.

Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.