2 个版本
0.0.3 | 2020 年 9 月 22 日 |
---|---|
0.0.2 | 2020 年 9 月 5 日 |
0.0.1 |
|
#5 in #javascriptcore
21 每月下载
在 jscjs 中使用
46KB
794 行
jscjs-sys
A *-sys
crate of raw bindings to the JavaScriptCore low-level C API.
用法
将以下内容添加到您的 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-dev
或clang-dev
) cmake
和make
工具- 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