A *-sys
crate of raw bindings to the JavaScriptCore low-level C API.
![crates.io-badge] ![docs.rs-badge] ![musl-badge] ![darwin-badge] ![license]
```sh #
# ➜ git clone --recursive https://github.com/drtychai/jsc-sys
[ ... ]
#
#
➜ cargo build [-vv] [--target
[ ... ]
#
JSC_SRC
environment variable#
➜ export JSC_SRC=/abs/path/to/webkit && cargo package [-vv] [--target
Add the following to your Cargo.toml
:
toml
[dependencies]
jscjs-sys = "0.0.2"
All necessary definitions are provided to easily interoperate with the JSC API on all x86_64
*nix
architectures supported by Rust. This includes: JSContextRef
, JSValueRef
, JSClassRef
, JSObjectref
, and JSTypeRef
These bindings are designed to be a fairly straightforward translation to the low-level C API, while taking advantage of Rust's memory safety. For more about the JavaScriptCore API, see the API source and the documentation.
Provided below are some practical examples of what functionalities this crate allows: - Create a global scripting context, used to create and execute JavaScript objects and code - Work natively with objects, parameters - Build JavaScript functions out of strings - Associate C callbacks to user-definted "classes" of objects - Attach C callbacks to "classes", handles responses to an action (e.g., getters/setters, promises, fn cals) - Load JavaScript files based on designated names and starting line-numbers