I'm interested in a C++ library for reading and possibly writing graphs and digraphs from and to buffers and streams/files. In other words: A graph de/serialization library.
Required features:
- Supports at least a few commonly-used formats
- Gratis
- Libre
- Multi-platform (Linux, Windows, Mac)
Desired features (not in order of significance):
- Supports most/all common formats (say, something like this list).
- Utilizes modern C++
- Has few or no dependencies (e.g. not Boost)
- Supports graph-like structures, e.g. graphs with ports
- Supports various non-basic features of the different formats (e.g. labels, coloring and grouping in graphviz).
- Actively maintained.
- Does not require building the graph in some library-specific format, but can accommodate your own format through iterators or templates.
- C bindings
- Can work entirely at compile-time if serializing/de-serializing from a buffer available at compile-time.