myIO 1.3.0 has a pinned end-to-end compatibility gate for WebR 0.6.0.
The claim is deliberately specific: CI cross-compiles myIO and its
dependencies as WebAssembly packages, loads library(myIO),
creates a point chart in R, transfers the serialized htmlwidget payload,
and renders that payload with the production myIO bundle in Chromium.
The gate requires a visible SVG, the expected marks, and no R, page, or
console errors.
This does not claim that DuckDB-WASM, every browser engine, or every host framework has been validated. Those remain separate compatibility surfaces.
Why a Wasm package repository is required
WebR cannot install an R package from source in the browser. Custom
packages must be compiled for WebAssembly first and made available
through a compatible binary repository. myIO uses the official r-wasm/actions/build-rwasm@v3
path in CI. See the WebR documentation on building R
packages for the underlying constraint and supported distribution
model.
Quarto Live setup
Quarto Live uses WebR to execute R blocks in the reader’s browser and supports htmlwidget output. Install the extension in a Quarto project:
Then configure the document to use the same WebR release tested by myIO. The Morton Analytics R-universe is a CRAN-like repository that publishes Wasm binaries; confirm that it carries myIO 1.3.0 before publishing the document.
---
title: "myIO in the browser"
format: live-html
webr:
engine-url: https://webr.r-wasm.org/v0.6.0/
packages:
- myIO
repos:
- https://mortonanalytics.r-universe.dev
---Quarto Live documents using the knitr engine also need
its documented setup include. Follow the current Quarto
Live installation instructions for that project-level
configuration.
An interactive block can then create a standard small-data widget:
```{webr}
library(myIO)
stopifnot(packageVersion("myIO") >= "1.3.0")
myIO(mtcars) |>
addIoLayer(
type = "point",
label = "Cars",
mapping = list(x_var = "wt", y_var = "mpg")
) |>
setAxisFormat(xLabel = "Weight", yLabel = "Miles per gallon")
```
The stopifnot() check prevents an older repository
snapshot from silently supporting a publication claim intended for
1.3.0. Quarto Live documents can configure custom repositories through
webr.repos; its package-loading
guide describes the same precompiled-package pattern.
Supported boundary
The verified 1.3.0 path covers the pure-R configuration and transform layer, htmlwidget payload creation, production JavaScript bundle, SVG rendering, and keyframe configuration. It does not exercise the optional Arrow, DuckDB-WASM, WebGL, Shiny server, or Crosstalk paths inside WebR. Use the normal R, Shiny, and browser test matrices for those capabilities rather than treating WebR compatibility as a blanket runtime guarantee.
