21个版本 (13个破坏性更新)
0.15.0 | 2019年2月4日 |
---|---|
0.14.7 | 2017年3月11日 |
0.14.5 | 2017年2月20日 |
0.14.1 | 2016年11月27日 |
0.1.0 | 2015年7月24日 |
#15 in #v8
65KB
1.5K SLoC
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 构建配置 :)
无运行时依赖
~0–2.6MB
~49K SLoC