← Back to all sparks
R

rwasm

INFRA · APIS
Velocity0.0

Build R Packages for WebAssembly

The toolchain that gets R packages into the browser is optimising for payload size, not features.

webassemblywebrcross-compilationr-packagebuild-tooling
Current state
rwasm cross-compiles R packages to WebAssembly and assembles the virtual filesystem images that webR loads. Its three releases have moved from making cross-compilation work at all — Autoconf overrides, uname and pkg-config shims, OpenMP support — to controlling how the resulting artefacts are packaged and shipped. Every release is pinned to a specific webR version floor.
Where it's heading
The arc runs from correctness to delivery. The first release fought the cross-compilation environment itself, isolating builds from host libraries and shimming the tools configure scripts expect. The second replaced Emscripten's own file_packager with a custom metadata path and added gzip compression for filesystem images. The third is pure coordination, rebuilding the build system for webR 0.5.0. That cadence — roughly annual, each release gated on a webR version — makes this a component of the webR release train rather than an independently moving project.
Prediction
The next release will most likely follow the next webR version, since two of three releases so far have been driven by a webR floor rather than by rwasm's own agenda.

Recent moves

  1. 1y ago

    Build system realigned for webR 0.5.0

    A breaking build system update for webR 0.5.0 and later, plus a fix to include Makevars.wasm.in when looking for Makevars overrides. Coordination work that keeps the packaging tool aligned with the runtime it feeds.

    View source ↗
  2. 1y ago

    rwasm 0.2.0

    ⚡ SPARK

    The release that changed how artefacts are delivered rather than how they are built: Emscripten's file_packager is replaced with a custom metadata path over binary .tgz files, and VFS images can be gzip compressed. It reframes the project from a cross-compiler into a delivery pipeline.

    View source ↗
  3. 2y ago

    Cross-compilation gains OpenMP, Autoconf overrides and host isolation

    The foundational release, focused on making real R packages survive cross-compilation: Autoconf function-check overrides, shims for uname and pkg-config, OpenMP support, and isolation from host LIBS. It also flips the dependencies argument of add_pkg() to FALSE and makes CXX17 the default.

    View source ↗