Embedded JavaScript and WebAssembly Engine for R

An R interface to V8: Google's open source JavaScript and WebAssembly engine. This package can be compiled either with V8 version 6 and up, a NodeJS shared library, or the legacy 3.14/3.15 branch of V8.



  • Fixes for API changes in libv8 version 7.4 and 7.5
  • MacOS: fix include/linker path for new location of v8


  • Remove special casing for libnode-dev on Debian: libnode-dev now officially provides and symlinks libv8-dev.
  • Fix build for new V8 7.3.492.22 (Jan Marvin, #55)


  • Major upgrade: now support libv8 version 6.x and up. Note that this means we move to ES2015+ adding support for promises, async, etc. This may change the behavior of certain JavaScript libraries.
  • For now we also still stupport building with legacy V8 (3.14)
  • Debian Buster: support building with libnode-dev
  • Fedora: support building with v8-devel (V8 6.7.17)
  • MacOS: update binary package to V8 7.2.502.24

1.6 (unreleased)

  • Let Rcpp generated R_init_V8()
  • Add unit test for the exception problem on OSX 10.11



  • Fix autobrew for OSX Mavericks


  • Extract autobrew script to separate repo
  • Add symbol registration


  • Improve configure script to check for the correct version of libv8
  • Fedora 25+ requires v8-314-devel instead of v8-devel


  • Use C++ 'new' and 'delete' instead of nodelist to keep contexts in scope


  • Update homebrew URL in configure script


  • Update URL of browserify logo


  • Fix internal stop() function for new testthat
  • ctx$eval(character(0)) does not raise error anymore
  • Remove references to new_context() in favor of v8()
  • Use the new 'COMPILED_BY' variable on windows
  • Updated the URL to the V8 homepage in DESCRIPTION


  • Remove UTF-8 workarounds now that Rcpp has proper UTF-8 support


  • Add the console.r callback JavaScript api


  • Fix for OSX cran builder
  • Add 'v8' as a more descriptive alias for 'new_context'
  • Update libv8 on Windows to 3.15
  • Add support for the new windows tool chain


  • Fix configure script for OSX
  • Add 'v8' as a more descriptive alias for 'new_context'
  • Update libv8 on Windows to 3.15
  • Add support for the new windows tool chain


  • Deprecated support for I() removed. Use JS() instead
  • Refactored configure script to use pkg-config if available.
  • Updated libv8 brew script on OSX to v8-3.15
  • Update libv8 static builds on windows to v3.14.5.10
  • Ship separate libraries for win32 for more recent compilers


  • Breaking change: use JS() instead of I() to mark strings as literal JavaScript.
  • ct$source() now always assumes UTF-8 data, even on Windows.
  • Use the new V8_types.h feature from Rcpp 0.11.5
  • Start with custom code completion within ct$console() for R 3.2.0


  • Add support for Typed Arrays

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


3.4.2 by Jeroen Ooms, 6 months ago

https://github.com/jeroen/v8 (devel) https://v8.dev (upstream)

Report a bug at https://github.com/jeroen/v8/issues

Browse source code at https://github.com/cran/V8

Authors: Jeroen Ooms [aut, cre]

Documentation:   PDF Manual  

Task views: Web Technologies and Services

MIT + file LICENSE license

Imports Rcpp, jsonlite, curl, utils

Suggests testthat, knitr, rmarkdown

Linking to Rcpp

System requirements: V8 engine version 6+ is needed for modern JS and WASM support. On Debian / Ubuntu install either libv8-dev or libnode-dev, on Fedora use v8-devel. The readme has instructions for installing backports on Ubuntu Xenial and Bionic. It is still possible to build this package against the legacy libv8 version 3.14 branch, but these engines only support traditional JavaScript (ES5).

Imported by AdhereRViz, DOT, DiagrammeRsvg, JSconsole, adepro, ajv, almanac, asciicast, colormap, concaveman, daff, dagitty, datapackage.r, emuR, geojsonio, geojsonlint, gfer, ical, js, jsonld, jsonvalidate, katex, minimist, pluralize, randomcoloR, rchess, rchie, rjade, rless, rmapshaper, rstan, stanette, trackeRapp, uaparserjs.

Suggested by RDML, bracer, leaflet.providers, nmadb, nomnoml, prettifyAddins, reactR, shinyChakraUI.

Enhanced by d3r.

See at CRAN