pathrex-sys 0.1.0

Native FFI bindings for SuiteSparse:GraphBLAS and LAGraph used by the pathrex crate.
Documentation
  • Coverage
  • 0.69%
    1 out of 144 items documented0 out of 18 items with examples
  • Size
  • Source code size: 5.68 MB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.5 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 12s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • SparseLinearAlgebra/pathrex
    0 0 3
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • VanyaGlazunov

pathrex-sys

Native FFI bindings for SuiteSparse:GraphBLAS and LAGraph, used by the pathrex crate.

This crate is not intended to be used directly. It exposes a thin Rust binding layer over the GraphBLAS and LAGraph C APIs. End users should depend on pathrex instead, which provides a safe, idiomatic Rust interface.

What this crate does

At build time, pathrex-sys/build.rs:

  1. Clones SuiteSparse:GraphBLAS at a pinned tag into $OUT_DIR and builds it as a static library (libgraphblas.a) via cmake.
  2. Builds the bundled LAGraph source (shipped in deps/LAGraph/) as a static library against the GraphBLAS just built.
  3. Emits cargo:rustc-link-lib=static=... directives so downstream crates link the static archives.

The first cold build clones GraphBLAS and runs cmake; it takes roughly 2-10 minutes depending on core count. Subsequent builds reuse the GraphBLAS source tree under $OUT_DIR/graphblas-src/ and the cmake build directory.

System requirements

Dependency Purpose
cmake Building GraphBLAS and LAGraph from source
git Fetching pinned GraphBLAS source at build time
C/C++ toolchain Compiling GraphBLAS and LAGraph (gcc or clang)
OpenMP runtime Linked dynamically: libgomp on Linux, libomp on macOS, /openmp on MSVC

Features

Feature Effect
regenerate-bindings Regenerates src/lagraph_sys_generated.rs via bindgen from the LAGraph and GraphBLAS headers at build time. Requires libclang. Without this feature the checked-in bindings are used as-is.

License

MIT. See LICENSE.

LAGraph is bundled under its own BSD-2-Clause license; see deps/LAGraph/LICENSE. SuiteSparse:GraphBLAS is fetched at build time under the Apache-2.0 license.