Usability benchmarks for graph libraries

This repository contains a set of simple tasks to gauge not the performance, but the usability of network analysis and graph theory libraries.

These exercises will be solved using various graph libraries in various programming languages (including all three high-level interfaces of igraph). We will use this comparison to improve igraph's high-level APIs and make sure that they stand out in usability. The solutions may also serve as a "dictionary" to help people translate between different graph libraries, or learn to work with new libraries.

We welcome the developers of other network analysis libraries to join the project, and use the information here to improve their software. Contributions of new benchmark tasks, as well as solutions to the existing tasks are very welcome.

The tasks

See the tasks descriptions here.

How to contribute?

Proposing new benchmark tasks

Please open a new issue and describe the task.

Contributing solutions

Please open a new draft PR. Each solution should go into its own subdirectory, within the directory of the graph library with which it is implemented.

Graph libraries

Feel free to contribute solutions using any graph library in any high-level programming language, even if the library is not yet mentioned in this section.

GitHub issues for igraph's high-level interfaces