suitesparsegraphblassys

Rust bindings to SuiteSparse:GraphBLAS. Crates should not directly use these bindings. Instead, the crate graphblassparselinear_algebra provides a safe and idiomatic wrapper.

GraphBLAS implementation

suitesparsegraphblassys wraps the SuiteSparse:GraphBLAS v7.3.0. GraphBLAS implementation from Timothy A. Davis. This implementation is mostly compatible with the GraphBLAS specification version 2.0.

Requirements

suitesparsegraphblassys uses the SuiteSparse:GraphBLAS GraphBLAS implementation developed by Timothy A. Davis.

By default, graphblassparselinear_algebra makes a new build of SuiteSparse:GraphBLAS and links to it as a static dependency.

Git

suitesparsegraphblassys clones the SuiteSparse:GraphBLAS repository upon build. The build system must have Git installed and an internet connection.

C compiler

suitesparsegraphblassys includes a build script to build SuiteSparse:GraphBLAS from source. The build process requires an installed C compiler, for example GCC.

Environment variables

suitesparsegraphblassys' build script reads the following environment variables: - SUITESPARSEGRAPHBLASSYSCOMPILERPATH with the path of the C compiler on the build system. For example, when using GCC11 on Ubuntu 22.04 please set the environment variable to: "/usr/lib/gcc/x8664-linux-gnu/11" - SUITESPARSEGRAPHBLASSYSOPENMPSTATICLIBRARY_NAME with the name of the openmp implementation to be used. For example, when using GCC please set the environment variable to "gomp"

Bindgen and CMake

suitesparsegraphblassys depends on bindgen, please make sure the build system meets it's requirements

suitesparsegraphblassys also requires CMake installed on the build system.

Contributing

Awesome, contributions are welcome. suitesparsegraphblassys and your contribution may be relicensed and integrated into commercial software in the future. Therefore, you will be asked to agree to the Contributor License Agreement when you make a pull request.

Licensing

suitesparsegraphblassys is licensed under Creative Commons Attribution Non Commercial 4.0 International. For other licensing options, please contact Sam Dekker.

Compatibility

Tested on Ubuntu 22.04.1 LTS with the distribution standard GCC compiler.