WASM, but paranoia-friendly

Announcing 3 new projects:

  1. awasm: a new standard for auditable, high-security WASM packages
  2. awasm-compiler: an auditable js-to-wasm compiler
  3. awasm-noble: an ultra-fast WASM cryptography library (ChaCha/BLAKE3 at 6-10 GB/s)

First, AWASM.

Most WASM packages are opaque, hard-to-reproduce, and async.

AWASM packages are transparent, easy-to-reproduce, and sync.

If your project follows this philosophy, feel free to call it AWASM.

Second, awasm-compiler.

JavaScript (and TypeScript) is the language of the web. It could be understood by both developers and LLMs. A custom niche language would struggle to match that accessibility.

awasm-compiler is JS-to-WASM compiler, built around AWASM principles. The same source code compiles to 4 different backends:

  1. WASM (with simd)
  2. Threaded WASM (with web workers)
  3. Faster JS (for envs which don’t support wasm)
  4. Runtime (for debugging)

There are also (optional) stubs. Stubs ensure non-wasm envs could run JS (or native WebCrypto) code instead of WASM.

Finally, awasm-noble.

A rewrite of noble cryptography - built to be the fastest WASM crypto package.

Performance:

  • BLAKE3 (multi-input): 10.8 GB/s
  • BLAKE3 (single-input): 6.3 GB/s
  • ChaCha20: 6.4 GB/s

Everything is sync. Async variants are also available.

AWASM is live now.