View on GitHub


The Java Graph Laboratory

Download this project as a .zip file Download this project as a tar.gz file

License GPL 3 Build Status Clojars Project

JGraLab Logo


JGraLab is a Java graph library implementing so-called TGraphs: typed, attributed, ordered, and directed graphs. Beyond the plain data structure, the library contains an extensive algorithm library, the graph query language GReQL, the transformation API GReTL, and tons of utilities.

Installation and Building

Building from Sources

The following assumes that you create (or use) a workspace folder jgsrc for JGraLab and your JGraLab applications. Name and location of that workspace can be arbitrarily chosen.

When you plan to use Eclipse as IDE, the easiest is to put the jgralab folder into your Eclipse workspace folder.

The Ant build scripts require that your applications are located in sibling folders next to jgralab.

jgsrc/               # your jgralab workspace
+-> jgralab/         # this project, i.e., jgralab itself
+-> mygraphproject   # your app has to sit next to jgralab

To build jgralab you need to have Apache Ant. Build jgralab.

$ cd jgsrc/jgralab/
$ ant

The jgralab folder contains an Eclipse .project and .classpath file, so that you can import it in Eclipse as existing project. This import step is necessary also when you initially decided to put JGraLab into the Eclipse workspace since Eclipse does not automatically scan its workspace for new projects.

JGRaLab's Ant build generates many source files. Each time you run ant, you have to refresh the project in Eclipse, so that the changes get reflected in the IDE.

Getting Releases via Maven or Leiningen

The current and past JGraLab releases are pushed to the JGraLab Clojars site so that you can fetch them easily as project dependency via the Maven or Leiningen build and project management systems.

Downloading a Pre-Compiled Jar

You can download nightly builds from our snapshots page. The source jars contain the compiled class files and the source files. As such, they are preferrable to the binary-only builds when you intend to develop applications using JGraLab, because then you get nicer code completion, e.g., the real names of method parameters instead of just arg0.


API Documentation

You can find the API documentation for the current JGraLab master branch at our API Docs Page. This documentation is regenerated every night.

Coverage Report

Every night, we run all our test cases against the current master branch and measure our coverage using Atlassian Clover. The results are accessible at our Coverage Report Page.

Tutorials and Getting Started

We've started writing a tutorial in the JGraLab Wiki. It's not yet complete, but we'll keep working on extending it.

Getting Help

Join us on the official JGraLab IRC Channel (channel #jgralab on If you don't have or don't want to install an IRC client, you can also chat directly in your browser.



Copyright (C) 2006-2014 The JGraLab Team

Distributed under the General Public License, Version 3 with the following additional grant:

Additional permission under GNU GPL version 3 section 7

If you modify this Program, or any covered work, by linking or combining it
with Eclipse (or a modified version of that program or an Eclipse plugin),
containing parts covered by the terms of the Eclipse Public License (EPL),
the licensors of this Program grant you additional permission to convey the
resulting work.  Corresponding Source for a non-source form of such a
combination shall include the source code for the parts of JGraLab used as
well as that of the covered work.

License GPL 3