Rust implementation of NBLAST, originally published here and implemented here, with python bindings.
This repository acts as a cargo workspace, and contains three crates:
- nblast-rs, a cargo project representing the
nblastrust crate - nblast-py, a maturin project representing the
pynblastpython project (which binds to rust) - nblast-js, a wasm-pack project building the
nblast_jswebassembly package (which binds to rust)
To build and test the python project in nblast-py (which should not be deployed as a crate), use maturin develop and pytest in the subdirectory.
See crates.io and docs.rs for the rust project, or PyPI for the python package.
Requires a recent stable rust compiler.
In the nblast-rs subdirectory
- Use
cargo build/cargo test/cargo benchetc.
In the nblast-py subdirectory
- Install the development dependencies with
pip install -r requirements.txt - Compile the rust component and install locally with
maturin develop(add--releasefor an optimised build)
In the nblast-js subdirectory
- Use
make pkg(ormake pkg-debug) to build the WASM bundle - See
nblast-js/examples/nblast-appfor a standalone NBLAST webapp
Installing the python wheel from a source distribution (sdist) is currently not supported and will likely fail. See here for details on how to build locally if wheels are not available for your platform.