15个不稳定版本
0.8.0 | 2019年2月4日 |
---|---|
0.7.3 | 2017年2月20日 |
0.7.0 | 2016年11月17日 |
16 在 #v8 中排名
62 每月下载次数
在 2 crates 中使用
26KB
512 行
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
功能进行构建,应该使用 shared_library
。
只需将环境变量 V8_SOURCE
设置为 v8
检出根目录,并将 V8_BUILD
设置为树中的构建输出(例如 $V8_SOURCE/out/Release
),构建就应该能正常工作。如果不行,请找出解决问题的方法并发送一个 PR,我将无法测试所有的 V8 构建配置 :)
依赖项
~3–12MB
~119K SLoC