#linear-algebra #graph-blas #suite-sparse #bindings

sys suitesparse_graphblas_sys

Rust bindings for SuiteSparse::GraphBLAS

8 releases

0.3.0 Jun 9, 2024
0.2.1 Oct 13, 2023
0.1.6 Feb 14, 2023
0.1.5 Nov 6, 2022
0.1.1 Oct 23, 2022

#1384 in Math

Download history 3/week @ 2024-08-13 2/week @ 2024-08-27 1/week @ 2024-09-17 19/week @ 2024-09-24 8/week @ 2024-10-01

579 downloads per month
Used in 2 crates (via graphblas_sparse_linear_a…)

CC-BY-NC-4.0

1MB
21K SLoC

Contains (static library, 505KB) libgomp.a

suitesparse_graphblas_sys

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

GraphBLAS implementation

suitesparse_graphblas_sys wraps the SuiteSparse:GraphBLAS v8.2.0. GraphBLAS implementation from Timothy A. Davis. This implementation is mostly compatible with the GraphBLAS specification version 2.0.

Requirements

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

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

Git

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

C compiler

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

Environment variables

suitesparse_graphblas_sys' build script reads the following environment variables:

  • SUITESPARSE_GRAPHBLAS_SYS_COMPILER_PATH 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/x86_64-linux-gnu/11"
  • SUITESPARSE_GRAPHBLAS_SYS_OPENMP_STATIC_LIBRARY_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

suitesparse_graphblas_sys depends on bindgen, please make sure the build system meets its requirements

suitesparse_graphblas_sys also requires CMake installed on the build system.

Contributing

Awesome, contributions are welcome. suitesparse_graphblas_sys 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

suitesparse_graphblas_sys 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.

No runtime deps

~0–3MB
~67K SLoC