libgrape-lite - 🍇 A C++ library for parallel graph processing 🍇

  •        9

libgrape-lite is a C++ library from Alibaba for parallel graph processing. It differs from prior systems in its ability to parallelize sequential graph algorithms as a whole by following the PIE programming model from GRAPE. Sequential algorithms can be easily "plugged into" libgrape-lite with only minor changes and get parallelized to handle large graphs efficiently. In addition to the ease of programming, libgrape-lite is designed to be highly efficient and flexible, to cope the scale, variety and complexity from real-life graph applications. libgrape-lite is developed and tested on CentOS 7. It should also work on other unix-like distributions. Building libgrape-lite requires the following softwares installed as dependencies.



Related Projects

GraphScope - GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba

  •    Rust

GraphScope is a unified distributed graph computing platform that provides a one-stop environment for performing diverse graph operations on a cluster of computers through a user-friendly Python interface. GraphScope makes multi-staged processing of large-scale graph data on compute clusters simple by combining several important pieces of Alibaba technology: including GRAPE, MaxGraph, and Graph-Learn (GL) for analytics, interactive, and graph neural networks (GNN) computation, respectively, and the vineyard store that offers efficient in-memory data transfers. Visit our website at to learn more.

graph-learn - An Industrial Graph Neural Network Framework

  •    C++

Graph-Learn (formerly AliGraph) is a distributed framework designed for the development and application of large-scale graph neural networks. It abstracts a set of programming paradigms suitable for common graph neural network models from the practical problems of large-scale graph training, and has been successfully applied to many scenarios such as search recommendation, network security, knowledge graph, etc. within Alibaba. Graph-Learn provides both Python and C++ interfaces for graph sampling operations, and provides a gremlin-like GSL (Graph Sampling Language) interface. For upper layer graph learning models, Graph-Learn provides a set of paradigms and processes for model development. It is compatible with TensorFlow and PyTorch, and provides data layer, model layer interfaces and rich model examples.

graph - A mathematical graph/network library written in PHP

  •    PHP

This library is built around the concept of mathematical graph theory (i.e. it is not a charting library for drawing a graph of a function). In essence, a graph is a set of nodes with any number of connections in between. In graph theory, vertices (plural of vertex) are an abstract representation of these nodes, while connections are represented as edges. Edges may be either undirected ("two-way") or directed ("one-way", aka di-edges, arcs). Depending on how the edges are constructed, the whole graph can either be undirected, can be a directed graph (aka digraph) or be a mixed graph. Edges are also allowed to form loops (i.e. an edge from vertex A pointing to vertex A again). Also, multiple edges from vertex A to vertex B are supported as well (aka parallel edges), effectively forming a multigraph (aka pseudograph). And of course, any combination thereof is supported as well. While many authors try to differentiate between these core concepts, this library tries hard to not impose any artificial limitations or assumptions on your graphs.

jGraphT - Java graph library

  •    Java

JGraphT is a Java graph library that provides mathematical graph-theory objects and algorithms. It includes directed, undirected, weighted, unweighted etc. Graphs could be created based on Strings, URLs, XML documents.


  •    Javascript

Cytoscape.js is a fully featured graph theory library. Do you need to model and/or visualise relational data, like biological data or social networks? If so, Cytoscape.js is just what you need. Cytoscape.js contains a graph theory model and an optional renderer to display interactive graphs. This library was designed to make it as easy as possible for programmers and scientists to use graph theory in their apps, whether it's for server-side analysis in a Node.js app or for a rich user interface.



WPFGraph is a tool to create animations of graph algorithms using a WPF based 3D rendering engine. You can create a graph by adding nodes and edges to the UI simply by using your mouse. Then you can execute a graph algorithm like Dijkstra on the created graph.

alga - Algebraic graphs

  •    Haskell

Alga is a library for algebraic construction and manipulation of graphs in Haskell. See this paper for the motivation behind the library, the underlying theory and implementation details. This algebraic structure corresponds to unlabelled directed graphs: every expression represents a graph, and every graph can be represented by an expression. Other types of graphs (e.g. undirected) can be obtained by modifying the above set of laws. Algebraic graphs provide a convenient, safe and powerful interface for working with graphs in Haskell, and allow the application of equational reasoning for proving the correctness of graph algorithms.

LightGraphs.jl - An optimized graphs package for Julia

  •    Julia

Until an issue with one of our dependencies is resolved, LightGraphs will not work with any Julia 0.7 or 1.0 version that has been built from source on OSX or other systems with a compiler more modern than GCC7. If you use LightGraphs with Julia 0.7 or 1.0, please download a Julia binary. LightGraphs offers both (a) a set of simple, concrete graph implementations -- Graph (for undirected graphs) and DiGraph (for directed graphs), and (b) an API for the development of more sophisticated graph implementations under the AbstractGraph type.

GraphView - Android GraphView is used to display data in graph structures.

  •    Java

Android GraphView is used to display data in graph structures. The library is designed to support different algorithms. Currently, only the algorithms from Walker (with the runtime improvements from Buchheim) and Fruchterman&Reingold (for small graphs) have been implemented.

STINGER - In-memory graph store and dynamic graph analysis platform

  •    C

STINGER is a package designed to support streaming graph analytics by using in-memory parallel computation to accelerate the computation. STINGER is composed of the core data structure and the STINGER server, algorithms, and an RPC server that can be used to run queries and serve visualizations.

stellargraph - StellarGraph - Machine Learning on Graphs

  •    Python

StellarGraph is a Python library for machine learning on graphs and networks. StellarGraph is built on TensorFlow 2 and its Keras high-level API, as well as Pandas and NumPy. It is thus user-friendly, modular and extensible. It interoperates smoothly with code that builds on these, such as the standard Keras layers and scikit-learn, so it is easy to augment the core graph machine learning algorithms provided by StellarGraph. It is thus also easy to install with pip or Anaconda.

networkx - Official NetworkX source code repository.

  •    Python

NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. For additional details, please see INSTALL.rst.

ngx-graph - Graph visualization library for angular

  •    TypeScript

This library is focused on handling graph data (anything with nodes and edges) rather than chart data. Currently the only visualization uses the Dagre layout, which is specialized for directed graphs. The plan is to implement multiple visualisations for graph data within this same library. Eventually, ngx-charts-force-directed-graph may be imported into this library as another option to visualize your graph data. ngx-graph is a Swimlane open-source project; we believe in giving back to the open-source community by sharing some of the projects we build for our application. Swimlane is an automated cyber security operations and incident response platform that enables cyber security teams to leverage threat intelligence, speed up incident response and automate security operations.

VivaGraphJS - Graph drawing library for JavaScript

  •    Javascript

VivaGraphJS is designed to be extensible and to support different rendering engines and layout algorithms. Underlying algorithms have been broken out into ngraph. The larger family of modules can be found by querying npm for "ngraph".

tf_geometric - Efficient and Friendly Graph Neural Network Library for TensorFlow 1.x and 2.x

  •    Python

Efficient and Friendly Graph Neural Network Library for TensorFlow 1.x and 2.x. Inspired by rusty1s/pytorch_geometric, we build a GNN library for TensorFlow.

.NET Graph Library


The .Net Graph Library makes it easy for developers to create, traverse, analyze and solve problems related to graphs.

GraphView - GraphView is a DLL library that enables users to use SQL Server or Azure SQL Database to efficiently manage graphs

  •    CSharp

GraphView is a DLL library that enables users to use SQL Server or Azure SQL Database to manage graphs. It connects to a SQL database locally or in the cloud, stores graph data in tables and queries graphs through a SQL-extended language. It is not an independent database, but a middleware that accepts graph operations and translates them to T-SQL executed in SQL Server or Azure SQL Database. As such, GraphView can be viewed as a special connector to SQL Server/Azure SQL Database. Developers will experience no differences than the default SQL connector provided by the .NET framework (i.e., SqlConnection), only except that this new connector accepts graph-oriented statements.GraphView is a DLL library through which you manage graph data in SQL Server (version 2008 and onward) and Azure SQL Database (v12 and onward). It provides features a standard graph database is expected to have. In addition, since GraphView relies on SQL databases, it inherits many features in the relational world that are often missing in native graph databases.

Python Graph Library


The purpose of this project is to create a graph (network) library for the python language. The library will provide functions to manipulate graph structures, as well as a number of graph algorithms like Breadth amp; Depth First Search, Dijkstraamp;#039;s