# cbqn
A Rust crate for running [BQN](https://mlochbaum.github.io/BQN) code within a Rust program using [CBQN](https://github.com/dzaima/CBQN) interpreter shared object or WASI reactor.
# Building
## Native backend (libcbqn.so)
With the native backend (default), please make sure the libcbqn shared object can be found by rustc. For example, assuming `make shared-o3` build has been run in CBQN directory, running the tests for this crate require:
```
LD_LIBRARY_PATH=/path/to/CBQN RUSTFLAGS="-L /path/to/CBQN" RUSTDOCFLAGS="$RUSTFLAGS" cargo test
```
## WASI backend (BQN.wasm)
To build the WASI backend, point the `BQN_WASM` environment variable to the `BQN.wasm` file built with `make wasi-reactor-o3` CBQN makefile target. Disable default features and use `wasi-backend` feature. For example running the tests for this crate:
```
BQN_WASM=/path/to/CBQN/BQN.wasm cargo test --no-default-features --features=wasi-backend --release
```
# Usage
The [documentation](https://detegr.github.io/cbqn-rs/cbqn) contains multiple examples on how to use the crate.
# License
Licensed either under GPLv3, LGPLv3 or MPL 2.0 following the licensing of [CBQN](https://github.com/dzaima/CBQN/).