v8 0.5.5

High-level bindings to V8, the Javascript engine
# `v8-rs` [![Build Status]https://travis-ci.org/dflemstr/v8-rs.svg?branch=master]https://travis-ci.org/dflemstr/v8-rs [![codecov]https://codecov.io/gh/dflemstr/v8-rs/branch/master/graph/badge.svg]https://codecov.io/gh/dflemstr/v8-rs [![Language (Rust)]https://img.shields.io/badge/powered_by-Rust-blue.svg]http://www.rust-lang.org/

This is a wrapper around the [V8](https://developers.google.com/v8/)
Javascript engine, used for example in
the [Google Chrome browser](https://www.google.com/chrome/browser)
or [Node.js](https://nodejs.org/en/).

## 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:

``` yaml
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 :)