Releases: r-wasm/webr
webR 0.5.5
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
andhttr2
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
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
Patch release
-
Raise initial memory default (#552).
-
Use the
self
flake input inflake.nix
.
Full Changelog: v0.5.2...v0.5.3
webR 0.5.2
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
Backports
- Upgrade
@jupyterlite/contents
for JupyterLite 0.6.0 (#549)
Full Changelog: v0.4.3...v0.4.4
webR 0.5.1
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
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()
andFS.analyzePath()
functions on theWebR.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"
, wheren
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
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 theRObject
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 genericRObject
constructor, as the default is for JavaScript objects to map to Rdata.frame
objects using theRDataFrame
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
New features
- Added support for directly mounting (optionally compressed)
.tar
archives as filesystem images. Archives must be pre-processed using therwasm
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
- @luisDVA made their first contribution in #472
- @thomascwells made their first contribution in #473
Full Changelog: v0.4.1...v0.4.2
webR 0.4.1
New features
- When mounting Emscripten VFS images, filesystem
.data
files may be optionallygzip
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 propertygzip: true
(#460).
Breaking changes
-
R package dependencies listed only in the
LinkingTo
field are no longer downloaded bywebr::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 returnedPromise
at all.
Bug Fixes
- Partially revert 7c624f7, returning HTML Canvas scaling to the behaviour in webR 0.3.3.