6个版本
使用旧的Rust 2015
0.3.0 | 2016年9月19日 |
---|---|
0.2.1 | 2016年9月19日 |
0.1.2 | 2016年9月19日 |
#25 in #v8
27KB
634 行
v8-rs
注意: 此库未积极维护。我(dflemstr)尝试将其与最新主线V8版本保持同步,但维护负担过高。前进的道路将是通过bindgen
直接映射V8的C++ API,然后从那里开始尝试自动化更多的API表面映射,但我尝试这样做多次均未成功。欢迎提交拉取请求!
这是一个围绕V8 JavaScript引擎的包装器,例如在Google Chrome浏览器或Node.js中使用。
构建
构建V8相当复杂。此库已针对V8 5.4.x和GCC 6.x进行测试,但可能也适用于更高版本。
静态/共享
默认情况下,此库以静态方式链接V8。有一个名为shared
的功能,通过链接到libv8.so
(以及相关的库,如libicu-i10n.so
)来构建。由于V8 ABI频繁更改,通常没有理由动态链接。
Ubuntu/Travis CI
在Ubuntu或Travis CI上构建此库的最简单方法是使用预打包的V8版本。您需要sudo权限和Ubuntu Trusty或更高版本才能安装兼容版本
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
构建树
您可以使用任何受支持的构建方法构建构建树,这些方法使用depot_tools
、make
、gyp
、ninja
和/或gn
的任何组合,但gn
尚未得到广泛测试。
您应设置v8_use_snapshot=false
,因为目前不支持加载快照。
您还应该不要禁用 i10n
支持;这个库假设 libicu
是和 V8 同时构建的或者与 V8 兼容。
如果您想使用 shared_library
功能进行构建,您应该使用共享库进行构建。
只需将环境变量 V8_SOURCE
设置为 v8
检出的根目录,并将 V8_BUILD
设置为树中的构建输出(例如 $V8_SOURCE/out/Release
)即可。如果不行,请找出如何修复它并发送一个 PR,因为我无法测试所有 V8 的构建配置 :)
没有运行时依赖
~0–2MB
~40K SLoC