GraphStore is an in-memory graph structure implementation written in Java. It's designed to be powerful, efficient and robust. It's powering the Gephi software and supports large graphs in intensive applications.
- Blazing fast graph data structure optimized for reading and writing
- Comprehensive APIs to read and modify the graph structure
- Low memory footprint - reduced usage of Java objects and collections optimized for caching
- Supports directed, undirected and mixed graphs
- Supports parallel edges (i.e. edges can have a label)
- Any number of attributes can be associated with nodes or edges
- Thread-safe - Implements read-write locking mechanism to allow multiple reading threads
- Supports dynamic graphs (graphs over time)
- Built-in index on attribute values
- Fast and compact binary serialization
- Spatial indexing based on a quadtree
Stable releases can be found on Maven central.
Development builds can be found on Sonatype's Snapshot Repository.
API Documentation is available here.
Follow this QuickStart to get started.
<dependency>
<groupId>org.gephi</groupId>
<artifactId>graphstore</artifactId>
<version>0.7.2</version>
</dependency>
compile 'org.gephi:graphstore:0.7.2'
GraphStore is built for JRE 11+ and depends on FastUtil and Colt.
For a complete list of dependencies, consult the pom.xml
file.
GraphStore uses Maven for building.
> mvn clean install
Note that code formatting is automatically applied at that time.
> mvn test
> mvn jacoco:report
The source code is available under the Apache 2.0 license. Contributions are welcome.