-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Research] Investigate petgraph & alternatives #29
Comments
Before picking
If our requirement changes and we have to support multiple edges no matter what, obviously we can forget the CSR compact representation, so 3. might be relaxed.
(We are currently using
I would bet that none of the other implementations suit us: they will either disallow parallel edges or put a limit on the number of elements. Perhaps we should start by writing down all the operations we need to support from a graph (or at least the ones we can think of) and see if any other graph library fits our needs or think about writing a small, in-house one. |
Just for curiosity, I did take a brief look at graphlib, one of the libraries linked in the Reddit discussion. Pros:
Cons:
Perhaps we could look into forking this library, if we think it's easier to understand and less intimidating than |
@MeBrei Small update on this: I have reached out to the I will experiment a bit more with this library to see how it is implemented internally and if it does put a limit on the number of nodes/edges one might have, and report back. If this shows potential, we can fork it and maintain our own version, I guess. |
So far we've been using
petgraph
, but with changing requirements we should check if this is still the best choice.Generally assess if there are alternatives for petgraph.
In particular we want to determine if there are graph libraries that support multi-edges between nodes (as suggested in Graph API discussions) and/or if petgraph can or can be tweaked to do this. Also keep in mind the limitations of the libraries regarding scale and performance.
As an outcome, we want to have a clear picture of how we could implement multi-edges or have clearly defined limitations that we can bring to the Graph API meeting.
The text was updated successfully, but these errors were encountered: