v8-rs

This is a wrapper around the V8 Javascript engine, used for example in the Google Chrome browser or Node.js.
Building
It is quite complicated to build V8. This library has been tested against V8 5.4.x with GCC 6.x, but later versions might work.
Static / Shared
By default, this library links V8 statically. There is a feature
called shared that builds it by linking to libv8.so (and related
libraries like libicu-i10n.so) instead. There's usually little
reason to link dynamically since the V8 ABI changes fairly frequently.
Ubuntu / Travis CI
The easiest way to build this library on Ubuntu or Travis CI is to use
a pre-packaged version of V8. You need both sudo and Ubuntu Trusty
or later to install a compatible one:
sudo: true
dist: trusty
language: rust
addons:
apt:
sources:
- sourceline: 'ppa:pinepain/libv8-5.4'
- ubuntu-toolchain-r-test
packages:
# Modern compilers
- gcc-6
- g++-6
# The V8 version that we want to bind
- libv8-5.4-dev
- libicu-dev
env:
global:
- CC=gcc-6
- CXX=g++-6
Build tree
You can build a build tree using any supported build method that uses
any combination of depot_tools, make, gyp, ninja and/or gn,
but gn hasn't been tested that extensively.
You should set v8_use_snapshot=false, loading snapshots is currently
not supported.
You should also not disable i10n support; this library assumes
libicu was built at the same time as V8 or is compatible with V8.
You should build using shared_library if you want to build with the
shared feature.
Simply set the environment variable V8_SOURCE to the root of the
v8 checkout, and V8_BUILD to the build output in the tree (for
example $V8_SOURCE/out/Release) and the build Should Work®. If not,
please figure out how to fix it and send a PR, it'll be impossible for
me to test all of the V8 build configurations :)