#javascript #context #javascriptcore #value #bindings #webkit #object

sys jscjs_sys

提供对 Webkit JavaScript 引擎 JavaScriptCore 的绑定的系统包

2 个版本

0.0.3 2020 年 9 月 22 日
0.0.2 2020 年 9 月 5 日
0.0.1 2020 年 9 月 1 日

#5 in #javascriptcore

21 每月下载
jscjs 中使用

AGPL-3.0

46KB
794

jscjs-sys

A *-sys crate of raw bindings to the JavaScriptCore low-level C API.

crates.io-badge docs.rs-badge gnu-badge musl-badge darwin-badge license

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
jscjs_sys = "0.0.3"

所有必要的定义都提供,以便轻松与支持 Rust 的所有 x86_64 *nix 架构的 JSC API 进行交互。此包明确导出

libJavaScriptCore jscjs_sys
JSContextGroupRef jscjs_sys::VM
JSGlobalContextRef jscjs_sys::Context
JSString jscjs_sys::Sting
JSValueRef jscjs_sys::Value
JSObjectref jscjs_sys::Object

这些绑定设计为相对直接地将低级 C API 转换为 Rust,同时利用 Rust 的内存安全性。有关 JavaScriptCore API 的更多信息,请参阅 API 文档

以下是一些此包允许的功能的实际示例

  • 创建全局脚本上下文,用于创建和执行 JavaScript 对象和代码
  • 与对象和参数原生工作
  • 从字符串构建 JavaScript 函数
  • 将 C 回调关联到用户定义的对象 "类"
  • 将 C 回调附加到 "类",处理对动作的响应(例如,获取器/设置器、承诺、函数调用)
  • 根据指定的名称和起始行号加载 JavaScript 文件

开发

先决条件

  • LLVM 工具链(llvm-devclang-dev
  • cmakemake 工具
  • WebKit 依赖项(特定于 GNU/Linux)
    • cd/path/to/WebKit&&工具/gtk/install-dependencies

获取源代码

克隆 crate 和 WebKit 源代码(作为子模块包含)

 git clone https://github.com/drtychai/jsc-sys
 cd jsc-sys && \
  git submodule update --remote --init --recursive

构建

构建没有特殊注意事项

 cargo build [-vv] [--target <TRIPLE>]

                 [ ... ]

打包

除非设置了 SRC_DIR 环境变量,否则打包需要克隆 WebKit 的运行时

 export SRC_DIR=/abs/path/to/webkit && \
  cargo package [-vv] [--target <TRIPLE>]

                 [ ... ]

依赖关系

~1–3MB
~83K SLoC