# rquickjs-sys
[](https://github.com/DelSkayn/rquickjs)
[](https://crates.io/crates/rquickjs-sys)
[](https://docs.rs/rquickjs-sys)
[](https://github.com/DelSkayn/rquickjs/actions?query=workflow%3ARust)
This crate is a low level unsafe raw bindings for the [QuickJS](https://bellard.org/quickjs/) JavaScript engine.
__NOTE:__ Usually you shouldn't use this crate directly, instead use [rquickjs](https://crates.io/crates/rquickjs) crate which provides high level safe bindings.
## Patches
In order to fix bugs and get support for some unimplemented features the series of patches applies to released sources.
Hot fixes:
- Fix for _check stack overflow_ (important for Rust)
- Atomic support for `JS_NewClassID` (important for Rust)
- Infinity handling (replacement `1.0 / 0.0` to `INFINITY` constant)
Special patches:
- Reading module exports (`exports` feature)
- Reset stack function (`parallel` feature)
- MSVC support
## Environment Variables
The following environment variables can be used to control which WASI SDK is using during the build:
- `WASI_SDK`: Path to the WASI SDK to use during the build. If unset, this crate will download it automatically instead.
- `RQUICKJS_SYS_NO_WASI_SDK`: If set to `1`, this crate will not attempt to use the WASI SDK
and instead the `CC`, `AR`, and `CFLAGS` environment variables must be appropriately set.