I'm interested in a library for:
- Representing graph rewriting rules
- Representing formal grammars relating to graphs
- (Low priority:) representing graph automata
- (Low priority:) Running graph automata on a given graph
- Quickly applying rewriting rules to a graph, once-off and repeatedly
It does not matter whether the library represents graphs itself or whether it relies on an external library, or the user, for that representation
The library should support:
- Directed and undirected graphs
- Simple and multigraphs
- Edge and vertex labels and colors, preferably of multiple kinds
The programming language should be, in order of decreasing preference:
- Modern C++ (i.e. C++11 and later)
- old(ish) C++
- Anything else
License:
- Does not need to go into commercial code
- Preferably something I can create derived work from and include elsewhere in code
- Less preferably, something I can link against
Price Limit: Must be freely available for download.