.w

Familiar syntax.
Less overhead.

A general-purpose, heapless language for WebAssembly.

.w

Why W?

Heapless memory.

Reusable storage. No garbage collector.

Less overhead.

Designed for fewer temporary objects.

Direct control.

Explicit types, pointers, SIMD, and atomics.

Oh, that looks familiar!

W takes inspiration from Go, TypeScript, and C, so the basics should feel familiar. You can follow what the code does while you’re still getting to know the language.

sum.w
pub fn sum(limit: i32): i32 {
  mut total: i32 = 0
  mut index: i32 = 0

  while index < limit {
    total += index
    index += 1
  }

  rt total
}

In development.

Private for now. Syntax may change.

Primary targetWebAssembly
Native targetExperimental