For build graph analysis, the strongest matches are cytoscape/cytoscape.js (Cytoscape), neo4j/neo4j (Neo4j is a native graph database and analysis platform) and alibaba/graph-learn (Alibaba/graph-learn is a distributed graph processing engine and graph). janusgraph/janusgraph and angel-ml/angel round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked graph analysis frameworks for GitHub. Compare the top open-source tools by stars, activity, and features to find the right fit.
Cytoscape.js is a JavaScript library designed for rendering interactive node-link diagrams and analyzing complex network structures directly within a web browser. It functions as a comprehensive framework for building responsive graph interfaces, providing the tools necessary to visualize relational datasets and manage hierarchical data models. The library distinguishes itself through a modular architecture that supports custom layout algorithms and rendering styles, allowing for the integration of physics-based engines to organize complex network structures automatically. It utilizes an even
Cytoscape.js is a JavaScript graph visualization library that provides network analysis and interactive node-link diagram rendering directly in the browser, though it lacks native Python support, database integration, and streaming graph analysis.
Neo4j is a native graph database management system designed to store and query highly connected data using a property-graph model. It provides an ACID-compliant transaction engine that ensures data integrity, supported by a distributed cluster architecture that maintains causal consistency across nodes. Users interact with the system through a declarative query language, which allows for complex pattern matching and path traversal without requiring manual traversal logic. The platform distinguishes itself through its hybrid approach to data retrieval, combining traditional graph-based queries
Neo4j is a native graph database and analysis platform that provides robust property-graph modeling, complex pattern matching via Cypher, scalability through clustering, and comprehensive graph processing capabilities suited for deep network analysis.
Graph-learn is a distributed graph processing engine and graph neural network framework designed for large-scale graph data. It provides specialized query interfaces to extract training subgraphs and node neighborhoods, enabling the construction and training of complex graph neural network models on massive datasets. The system integrates a real-time inference server to serve live predictions by sampling dynamic graphs with low latency while processing streaming graph updates. The project features a C++ core engine integration that executes graph sampling and tensor operations natively, coupl
Alibaba/graph-learn is a distributed graph processing engine and graph neural network framework built for large-scale graph analysis and streaming updates, though it focuses more on machine learning and GNN training than general-purpose graph visualization or pure database queries.
JanusGraph is a distributed, elastically scalable graph database designed to store and query highly connected data across a cluster of machines. It supports the property graph data model with ACID consistency and integrates multi-model search capabilities including geo, numeric range, and full-text queries. The database also includes a Graph OLAP engine for running batch analytics and global graph computations on large datasets using the Hadoop framework. The project distinguishes itself through a masterless cluster architecture that eliminates single points of failure, allowing every node to
JanusGraph is a distributed graph database and analytics platform that supports complex graph queries and batch computations, though it lacks built-in visualization tools and a direct Python interface out of the box.
Angel is a distributed machine learning framework and graph computation engine designed to train predictive models and execute algorithms across a cluster of servers. It functions as a distributed parameter server that synchronizes model weights and gradients across multiple machines to handle massive datasets. The system provides a production environment for model inference deployment to provide real-time predictions for end users. It integrates with Spark to run machine learning workflows and data processing pipelines through a compatible interface. The framework covers distributed graph c
Angel is a distributed graph computation engine and machine learning framework that processes large-scale networks, though it lacks direct Python interface mentions and general-purpose graph database integration.
NetworkX is a Python library designed for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. It provides a comprehensive framework for modeling relationships between entities as graphs, directed graphs, or multigraphs, allowing users to attach arbitrary metadata and properties to nodes and edges. The library distinguishes itself through a modular architecture that decouples graph analysis logic from data storage, utilizing nested dictionaries and adjacency lists to manage topology. It features a pluggable backend system that delegates computat
NetworkX is a Python library for modeling and analyzing complex networks and graph structures, covering core algorithms, graph visualization, and data analysis though lacking built-in distributed streaming or a native graph database backend.
This project is a multi-model database system designed to store and manage information as documents, graphs, and key-value pairs within a single engine. It functions as a graph database and knowledge graph platform, providing the infrastructure to build, query, and visualize structured data models. By integrating vector search capabilities, the system serves as a vector database that supports retrieval-augmented generation for artificial intelligence applications. The platform distinguishes itself through a unified query language that allows users to perform document lookups, graph traversals
ArangoDB is a multi-model database system that handles graph data structures, traversals, and querying within a unified engine, making it a capable graph processing platform despite functioning primarily as a database rather than a pure analytics library.
Apache Spark is a unified distributed data processing engine designed for large-scale data analysis and computation graphs. It functions as a distributed machine learning framework, a graph processing system, a real-time stream processor, and a SQL analytics engine. The system enables the execution of distributed SQL querying, large-scale graph analysis, and real-time stream analytics across clusters of machines. It also provides a scalable environment for implementing machine learning algorithms and predictive model development on massive datasets. The engine incorporates relational query e
Apache Spark is a unified distributed data processing engine that includes a dedicated graph processing system for large-scale network analysis and computation, aligning well with your search for a scalable graph platform.
Cayley is a graph database and query engine designed to store and retrieve interconnected data. It functions as a quad store, persisting information as four-element tuples to maintain complex relationships and semantic linked data. The system features a backend-agnostic storage layer that decouples the graph API from the underlying data store. This allows for the integration of external backends through a modular adapter system, enabling the synchronization of data across different storage engines. The project provides a pattern-matching query engine for extracting specific nodes and relatio
Cayley is a graph database and query engine designed for storing and querying interconnected data, providing graph querying capabilities though lacking some advanced features like streaming analysis or a native Python interface.
petgraph is a graph data structure library for the Rust programming language. It provides a collection of tools for representing and manipulating graphs, functioning as a network analysis tool and a comprehensive graph algorithm suite. The library integrates with Graphviz DOT for importing, exporting, and parsing graph data to facilitate visualization. It distinguishes itself by offering specialized network analysis capabilities, such as the detection of cliques, bridge edges, articulation points, and subgraph isomorphisms. Its computational surface covers a wide range of algorithms, includi
petgraph is a graph data structure and algorithm library written in Rust that provides robust network analysis tools and graph algorithms, though it is tailored for Rust rather than providing the requested Python interface.
Cayley is a graph database engine designed for storing and querying interconnected data using a quad-based data model. It functions as an RDF quad store, managing information through subjects, predicates, objects, and labels. The system features a modular graph store architecture with pluggable backends, allowing it to swap between in-memory storage and various external persistent databases. It includes a GraphQL-inspired API and a dedicated data visualizer for the interactive exploration of nodes and edges. Query capabilities cover bidirectional path traversal and multi-syntax execution usi
Cayley is a graph database engine focused on storing and querying interconnected quad data with modular storage backends and a built-in visualizer, though it lacks Python-native bindings and streaming analysis features.
Kùzu is an embedded property graph database engine designed for high-performance analytical queries and local data management. It operates as a library within the host application process, utilizing a columnar-based storage architecture and just-in-time query compilation to execute complex graph traversals and pattern matching efficiently. By mapping database files directly into system memory, it ensures data durability and high-speed access while maintaining ACID-compliant transactional integrity. The engine distinguishes itself by integrating vector similarity search and full-text search di
Kùzu is an embeddable property graph database engine that supports complex graph queries and local data management, making it a powerful library for graph data analysis despite lacking native visualization or streaming graph analysis features.
Memgraph is an in-memory, distributed graph database designed for high-performance labeled property graph management. It utilizes a Cypher query engine for declarative data retrieval and manipulation, providing a scalable knowledge graph backend that integrates vector search and graph traversals. The system distinguishes itself as a real-time graph analytics platform, employing native C++ and CUDA implementations to execute complex network analysis and dynamic community detection on streaming data. It provides specialized support for AI integration, including GraphRAG capabilities, the constr
Memgraph is an in-memory graph database and analytics platform that supports Cypher queries, graph algorithms, and streaming data processing, though it focuses on being a database engine rather than a pure analysis library.
Guava is a Java standard library extension and utility toolkit that provides optimized data structures, concurrency tools, and core extensions. It serves as a comprehensive set of helpers for Java development, focusing on reducing repetitive boilerplate logic. The project is distinguished by its specialized implementations of immutable collections, which ensure thread safety and data consistency by preventing accidental modification. It also includes a dedicated graph data structure library for modeling and traversing networks of interconnected nodes and edges, alongside advanced collection t
Guava includes a dedicated graph data structure library for modeling and traversing networks of interconnected nodes and edges, though it is primarily a broader Java utility toolkit rather than a specialized graph analysis platform.
Dgraph is a distributed graph database designed to store and query highly connected data. It organizes information as nodes and edges to represent complex relationships between entities, providing a platform for managing and analyzing deeply linked datasets. The system functions as a horizontally scalable cluster that partitions data across multiple nodes to maintain performance and availability as information volume increases. It utilizes a specialized query language built for low-latency navigation of interconnected data points, allowing for the execution of complex queries across large-sca
Dgraph is a distributed graph database providing network analysis and graph querying capabilities for large-scale connected data, though it functions as a database system rather than a general-purpose graph algorithm library.
StellarGraph - Machine Learning on Graphs
StellarGraph is a Python library for machine learning on graphs that provides graph algorithms and representation learning, though it lacks direct streaming graph analysis or built-in visualization features.
PyGraphistry is a Python library to quickly load, shape, embed, and explore big graphs with the GPU-accelerated Graphistry visual graph analyzer
PyGraphistry is a Python library focused on GPU-accelerated visual graph analysis and exploration, though it leans heavily toward visualization rather than general algorithmic graph processing.
cuGraph - RAPIDS Graph Analytics Library
cuGraph provides GPU-accelerated graph analytics and algorithms built for performance and scalability, serving as a powerful platform for analyzing complex networks though it lacks a built-in graph database or native Python interface out of the box without the RAPIDS ecosystem.
The igraph library
This C-based graph library provides core graph algorithms and analysis tools, though it lacks built-in visualization and database features without additional bindings.
Graph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way.
Scala-Graph is an in-memory graph library designed to integrate seamlessly into the Scala collection framework for traversing and editing networks, though it lacks built-in Python support or advanced database integrations.
Cnn_graph is a graph convolutional network framework and graph signal processing library designed for machine learning research. It provides computational notebooks and code to process and classify graph-structured data by combining node features with an underlying adjacency matrix representation. The framework performs spectral graph convolutions through localized filters and accelerates filtering operations using truncated Chebyshev polynomials to avoid explicit graph Laplacian diagonalization. It includes a graph-structured data pipeline and sparse adjacency representations to handle irreg
This is a graph neural network and signal processing framework that models and analyzes graph structures through spectral convolutions, though it lacks general-purpose graph visualization and streaming analysis features.
Graph Nets is a graph neural network library and educational toolkit implemented in PyTorch, providing implementations of popular graph representation learning algorithms and research papers. The project covers core graph machine learning tasks including semi-supervised node classification, inductive and unsupervised node embedding generation, and neighborhood feature aggregation. The library supports diverse algorithmic approaches for processing network structures, ranging from shared-parameter graph convolutions and attention-weighted neighborhood aggregation to spectral Chebyshev filtering
Graph Nets is a PyTorch-based library for graph representation learning and neural networks that provides Python-based tools for analyzing network structures, though it focuses primarily on machine learning rather than general graph database querying.
Working with graphs in Julia
Graphs.jl is a graph analysis library in the Julia ecosystem that handles network modeling and algorithms efficiently, though it lacks built-in visualization and a Python interface.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| cytoscape/cytoscape.js | 10.9K | JavaScript | mit | |
| neo4j/neo4j | 15.9K | Java | gpl-3.0 | |
| alibaba/graph-learn | 1.3K | C++ | Apache-2.0 | |
| janusgraph/janusgraph | 5.8K | Java | NOASSERTION | |
| angel-ml/angel | 6.8K | Java | NOASSERTION | |
| networkx/networkx | 16.6K | Python | other | |
| arangodb/arangodb | 14.1K | C++ | other | |
| apache/spark | 43.5K | Scala | Apache-2.0 | |
| google/cayley | 15K | Go | Apache-2.0 | |
| petgraph/petgraph | 3.9K | Rust | Apache-2.0 |