This library implements functionality to make producing test graphs programmatically more amenable. It is based off of the work on the Stanford GraphBase by Donald E. Knuth, borrowing the same ideas for the underlying algorithms, but ultimately implementing a different public API.
One major difference includes providing a backend-agnostic set of routines for implementing the same
functionality as the original GraphBase. This means any implementor of the GraphBackend trait and
the extension traits required for iteration over vertices and arc insertion can benefit from all of
the generative routines. By default, the library ships with an implementation of the same graph
backend as in the original GraphBase, with slight modifications to make it more Rusty/safe (though
not entirely so.)
It's still very much a work in progress, though.
The project also contains FFI bindings to the original library. Those are located under the gb-sys
directory. The build script there allows building the library as a dynamic shared object file and as
a static shared object file without relying on anything but a GNU-compatible make in the host
machine. The build script will compile from source both CWEB and the Stanford GraphBase, though at
present there is no support for detecting an existing installation of the library in the host
machine.
These bindigns are tested through the ctest framework, for which the dedicated crate lives under
gb-test.