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
nblast
rust crate - nblast-py, a maturin project representing the
pynblast
python project (which binds to rust) - nblast-js, a wasm-pack project building the
nblast_js
webassembly 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 bench
etc.
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--release
for an optimised build)
In the nblast-js
subdirectory
- Use
make pkg
(ormake pkg-debug
) to build the WASM bundle - See
nblast-js/examples/nblast-app
for 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.