#v8 #javascript-engine #javascript #api #build-script

bin+lib v8-api

一个用于从v8.h文件中提取V8 API描述的解析器。用于构建脚本中,例如在v8-sys中。

15个不稳定版本

0.8.0 2019年2月4日
0.7.3 2017年2月20日
0.7.0 2016年11月17日

16#v8 中排名

Download history 22/week @ 2024-03-30 1/week @ 2024-04-06 4/week @ 2024-04-20

62 每月下载次数
2 crates 中使用

Apache-2.0

26KB
512

v8-rs 构建状态 Crates.io codecov 语言 (Rust)

注意: 此库不再积极维护。我(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_toolsmakegypninja 和/或 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