3Released: April 5, 2015</p>
5Written by [Barak Naveh](mailto:email@example.com) and Contributors
7(C) Copyright 2003-2015, by Barak Naveh and Contributors. All rights
10Please address all contributions, suggestions, and inquiries to the [user mailing list](https://lists.sourceforge.net/lists/listinfo/jgrapht-users)
12## Introduction ##
14JGraphT is a free Java class library that provides mathematical graph-theory objects and algorithms. It runs on Java 2 Platform (requires JDK 1.7 or later).
16JGraphT may be used under the terms of either the
18 * GNU Lesser General Public License (LGPL) 2.1
23 * Eclipse Public License (EPL)
26As a recipient of JGraphT, you may choose
27which license to receive the code under.
29For a detailed information on the dual license approach, see https://github.com/jgrapht/jgrapht/wiki/Relicensing.
31A copy of the [EPL license](license-EPL.txt) and the [LPGL license](license-LGPL.txt) is included in the download.
33Please note that JGraphT is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
35Please refer to the license for details.
37## Contents ##
39- `README.md` this file
40- `CONTRIBUTORS.md` list of contributors
41- `HISTORY.md` changelog
42- `license-EPL.txt` Eclipse Public License 1.0
43- `license-LGPL.txt` GNU Lesser General Public License 2.1
44- `javadoc/` Javadoc documentation
45- `lib/` JGraphT libraries:
46- `jgrapht-core-x.y.z.jar` core library
47- `jgrapht-demo-x.y.z.jar` demo classes
48- `jgrapht-ext-x.y.z.jar` extensions
49- `jgrapht-ext-x.y.z-uber.jar` all libraries rolled into one
50- `jgraph-a.b.c.jar` JGraph dependency library
51- `jgraphx-a.b.c.jar` JGraphX dependency library
52- `source/` complete source tree used to build this release
54## Getting Started ##
56The package `org.jgrapht.demo` includes small demo applications to help you get started. If you spawn your own demo app and think others can use it, please send it to us and we will add it to that package.
58To run the graph visualization demo from the downloaded release, try executing this command in the lib directory:
60 java -jar jgrapht-demo-x.y.z.jar
62## Using via Maven
64Starting from 0.9.0, every JGraphT release is published to the Maven Central Repository. You can add a dependency from your project as follows:
72## Upgrading Versions ##
74To help upgrading, JGraphT maintains a one-version-backwards compatibility. While this compatibility is not a hard promise, it is generally respected. (This policy was not followed for the jump from `0.6.0` to `0.7.0` due to the pervasive changes required for generics.) You can upgrade via:
76- **The safe way** : compile your app with the JGraphT version that immediately follows your existing version and follow the deprecation notes, if they exist, and modify your application accordingly. Then move to the next version, and on, until you're current.
77- **The fast way** : go to the latest JGraphT right away - if it works, you're done.
79Reading the [change history](HISTORY.md) is always recommended.
81## Documentation ##
83A local copy of the Javadoc HTML files is included in this distribution. The latest version of these files is also available [on-line](http://www.jgrapht.org/javadoc).
85## Dependencies ##
87- JGraphT requires JDK 1.7 or later to build.
88- [JUnit](http://www.junit.org) is a unit testing framework. You need JUnit only if you want to run the unit tests. JUnit is licensed under the terms of the IBM Common Public License. The JUnit tests included with JGraphT have been created using JUnit `3.8.1`.
89- [XMLUnit](http://xmlunit.sourceforge.net) extends JUnit with XML capabilities. You need XMLUnit only if you want to run the unit tests. XMLUnit is licensed under the terms of the BSD
91- [JGraph](http://sourceforge.net/projects/jgraph) is a graph visualization and editing component. You need JGraph only if you want to create graph visualizations using the JGraphT-to-JGraph adapter. JGraph is licensed under the terms of the GNU Lesser General Public License (LGPL).
92- [JGraphX](http://www.jgraph.com/jgraph.html) is the successor to JGraph. You need JGraphX only if you want to use the JGraphXAdapter to visualize the JGraphT graph interactively via JGraphX. JGraphX is licensed under the terms of the BSD license.
93- [Touchgraph](http://sourceforge.net/projects/touchgraph) is a graph visualization and layout component. You need Touchgraph only if you want to create graph visualizations using the JGraphT-to-Touchgraph converter. Touchgraph is licensed under the terms of an Apache-style License.
95## Online Resources ##
97The JGraphT website is at [http://www.jgrapht.org](http://www.jgrapht.org). You can use this site to:
99- **Obtain the latest version**: latest version and all previous versions of JGraphT are available online.
100- **Report bugs**: if you have any comments, suggestions or bugs you want to report.
101- **Get support**: if you have questions or need help with JGraphT.
103There is also a [wiki](https://github.com/jgrapht/jgrapht/wiki) set up for everyone in the JGraphT community to share information about the project.
105Source code is hosted on [github](https://github.com/jgrapht/jgrapht). You can send contributions as pull requests there.
107## Your Improvements ##
109If you add improvements to JGraphT please send them to us as pull requests on github. We will add them to the next release so that everyone can enjoy them. You might also benefit from it: others may fix bugs in your source files or may continue to enhance them.
111## Thanks ##
113With regards from
115[Barak Naveh](mailto:firstname.lastname@example.org), JGraphT Project Creator
117[John Sichi](mailto:email@example.com), JGraphT Project Administrator