6 releases

new 0.2.1 Dec 8, 2024
0.2.0 Dec 7, 2024
0.1.2 Dec 6, 2024
0.1.1 Jun 24, 2023
0.0.8 Jan 28, 2023

#127 in WebAssembly

Download history 1/week @ 2024-09-23 1/week @ 2024-10-07 2/week @ 2024-10-14 4/week @ 2024-11-04 331/week @ 2024-12-02

331 downloads per month

GPL-3.0-only

1.5MB
1.5K SLoC

Contains (ELF lib, 1.5MB) libcbqn.so

cbqn

A Rust crate for running BQN code within a Rust program using 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. Build libcbqn.so with make shared-o3 in CBQN repository and set up .cargo/config.toml as following:

[build]
rustflags = "-L/path/to/CBQN"
rustdocflags = "-L/path/to/CBQN"

To make the executable aware of libcbqn.so, if no global install is available for you, you can use LD_LIBRARY_PATH to tell where to load libcbqn.so from:

LD_LIBRARY_PATH=/path/to/CBQN 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 contains multiple examples on how to use the crate.

License

Licensed either under GPLv3, LGPLv3 or MPL 2.0 following the licensing of CBQN.

Dependencies

~2–16MB
~226K SLoC