graphstore icon indicating copy to clipboard operation
graphstore copied to clipboard

Fast in-memory graph structure, powering Gephi

GraphStore

build Coverage Status

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.

Features Highlight

  • 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

Download

Stable releases can be found on Maven central.

Development builds can be found on Sonatype's Snapshot Repository.

Documentation

API Documentation is available here.

Dependencies

GraphStore depends on FastUtil >= 6.0, Colt 1.2.0 and Joda-Time 2.2.

For a complete list of dependencies, consult the pom.xml file.

Developers

How to build

GraphStore uses Maven for building.

> mvn clean install
	

How to test

> mvn test

How to obtain code coverage report

> mvn jacoco:report

How to run the benchmark code

> mvn integration-test

Contribute

The source code is available under the Apache 2.0 license. Contributions are welcome.