Skip to content

Releases: r-wasm/webr

webR 0.5.5

14 Aug 08:25
Compare
Choose a tag to compare

New features

  • Proxy WebSocket communication through the main thread when using the SharedArrayBuffer communication channel (#562).

  • Added support for webr::eval_js(..., await = TRUE).

  • Updated OpenSSL to version 3.5.1 (#564).

  • Added a SSL cacert bundle to the Emscripten VFS (#562).

  • Added support mechanism for running curl and httr2 using a WebSocket proxy + SOCKS tunnel running outside the browser (#562).

  • Minor UI, favicon, and Open Graph metadata tweaks to the webR application.

Breaking changes

  • Removed the service worker communication channel. This channel has been deprecated for a while now, and was never chosen in Automatic mode (#562).

Full Changelog: v0.5.4...v0.5.5

webR 0.5.4

11 Jul 09:34
Compare
Choose a tag to compare

New features

  • Support sharing URLs and initial editor file population in the webR application. (#554)

Breaking changes

  • Updated Fontconfig to version 2.15.0 (#544).

Bug Fixes

  • (Regression, again) Fix linking to the FreeType library when building webR (See #504 for details).

Full Changelog: v0.5.3...v0.5.4

webR 0.5.3

30 Jun 10:42
Compare
Choose a tag to compare

Patch release

  • Raise initial memory default (#552).

  • Use the self flake input in flake.nix.

Full Changelog: v0.5.2...v0.5.3

webR 0.5.2

20 Jun 14:00
Compare
Choose a tag to compare

Patch release

Minor hotfix release to include the correct version of R in the webR Docker image.

No other changes.

Full Changelog: v0.5.1...v0.5.2

webR 0.4.4

20 Jun 14:34
Compare
Choose a tag to compare

Backports

  • Upgrade @jupyterlite/contents for JupyterLite 0.6.0 (#549)

Full Changelog: v0.4.3...v0.4.4

webR 0.5.1

18 Jun 12:44
Compare
Choose a tag to compare

New features

  • Updated to R version 4.5.1.

Breaking changes

  • Upgraded JupyterLite DriveFS filesystem to v0.6.2, for use with JupyterLite v0.6.0 and later (#549).

Full Changelog: v0.5.0...v0.5.1

webR 0.5.0

02 Jun 08:52
Compare
Choose a tag to compare

New features

  • Updated to R version 4.5.0.

  • Added an async generator function WebR.stream() to the webR JavaScript API, providing an alternative way to stream output messages from the worker thread (#541).

  • Expose Emscripten's FS.rename() and FS.analyzePath() functions on the WebR.FS object in JavaScript (#543).

  • Added libaec 1.1.3 to the WebAssembly system libraries (#491).

  • Added HDF5 1.12.3 to the WebAssembly system libraries (#540).

Breaking changes

  • Updated to Emscripten version 4.0.8.

  • Updated the base LLVM distribution to LLVM 20, rebasing our Fortran for WebAssembly patches on the latest release of LLVM at time of writing (v20.1.4). The LLVM Fortran compiler binary name is now flang and webR's build scripts have been updated to reflect this.

  • Errors of type WebRWorkerError initially caused by Emscripten filesystem errors are now raised with message "ErrnoError: n", where n is the error number, rather than the generic "FS Error" message.

Bug Fixes

  • Fix linking to the FreeType library when building webR (#531).

  • Better handle worker loading errors with an error callback in newCrossOriginWorker (#539).

New Contributors

Full Changelog: v0.4.3...v0.5.0

webR 0.4.3

07 May 12:09
Compare
Choose a tag to compare

New features

  • Added support for mounting JupyterLite DriveFS filesystems within the webR JupyterLite kernel (#533).

  • Updated to R version 4.4.2 (#498).

Breaking changes

  • The webr::eval_js() function can now return other types of R object, not just scalar integers. Returned JavaScript objects are converted to R objects using the RObject generic constructor, and specific R object types can be returned by invoking the R object constructor directly in the evaluated JavaScript.

  • When explicitly creating a list using the RList constructor, nested JavaScript objects at a deeper level are also converted into R list objects. This does not affect the generic RObject constructor, as the default is for JavaScript objects to map to R data.frame objects using the RDataFrame constructor.

Bug Fixes

  • Added a workaround for compiling against older FreeType (#485).

  • (Regression) Mounting filesystem images using the WORKERFS filesystem type now works again in the browser using the JavaScript API from the main thread (#488).

Full Changelog: v0.4.2...v0.4.3

webR 0.4.2

11 Sep 15:44
Compare
Choose a tag to compare

New features

  • Added support for directly mounting (optionally compressed) .tar archives as filesystem images. Archives must be pre-processed using the rwasm R package to append filesystem image metadata to .tar archive data.

Breaking changes

  • When installing binary R packages, webR will now default to mounting the R package binary .tgz file as a filesystem image. If this fails (e.g. the .tgz has not been processed to add filesystem image metadata) webR will fall back to a traditional install by extracting the contents of the .tgz file.

Bug Fixes

  • Mounting filesystem images using the WORKERFS filesystem type now works correctly under Node.js (#328).

New Contributors

Full Changelog: v0.4.1...v0.4.2

webR 0.4.1

06 Aug 09:52
Compare
Choose a tag to compare

New features

  • When mounting Emscripten VFS images, filesystem .data files may be optionally gzip compressed. Compressed VFS filesystem data must have the file extension .data.gz, and the metadata JSON stored in the .js.metadata file must include the property gzip: true (#460).

Breaking changes

  • R package dependencies listed only in the LinkingTo field are no longer downloaded by webr::install(). Such packages are required for building an R package, but not at runtime. This saves time and network resources when installing R packages from a WebAssembly CRAN-like repository (#463).

  • Unrecoverable WebAssembly.RuntimeError errors are now handled by emitting an error message, closing the communication channel, and terminating the webR worker thread.

  • When the communication channel has been closed, reject any attempts to to write to the channel (e.g. webR.evalR(), webR.writeConsole()) with a relevant error message, rather than not resolving the returned Promise at all.

Bug Fixes

  • Partially revert 7c624f7, returning HTML Canvas scaling to the behaviour in webR 0.3.3.