yFiles for Java Product Types

yFiles for Java is available in four distributions, each containing a different combination of the Basic, Layout, and Viewer components.

Distribution Types

Basic Distribution

This contains only the Basic component.

Layout Distribution

Contains both the Basic and Layout components.

Viewer Distribution

Contains both the Basic and Viewer components.

Complete Distribution

Contains the Basic, Layout, and Viewer components.

Feature Comparison

The following table provides an overview of the features included in each distribution.

  yFiles for Java Distribution
Basic Componentefficient Graph data type implementation for the structural information of graph elements
wide variety of graph and network algorithms
Layout Componentsupport for geometry (position/size) of graph elements  
algorithms for automatic layout of graphs and diagrams  
algorithms for automatic layout of connections in diagrams  
automatic label placement  
Viewer Componentsupport for the visual representation of graph elements  
powerful graph viewer component for the presentation and creation/editing of diagrams  
extensive user interaction support  
support for nested graph structures  
Swing-based GUI elements for properties and parameters  
support for diverse input/output file formats for diagrams and export-only image file formats  
printing support, incl. poster printing  
animations and layout morphing  

yFiles for Java Building Blocks

There are currently three different yFiles for Java components, which can be combined as four different yFiles for Java distributions (see above).

Basic Component

Includes the following Java packages: y.algo, y.base, y.geom, y.util and y.util.pq.


The Basic component contains essential classes and data types for graph analysis. From highly efficient implementations of Graph, Priority Queue, and other advanced data types, to a wide variety of graph and network algorithms, The Basic component provides an indispensable toolkit for a range of network analysis tasks.

Layout Component

Includes the following Java packages: y.layout and all y.layout.* subpackages.


The Layout component builds upon the Basic component to offer a perfect suite of graph layout algorithms. Diverse layout styles including hierarchic, orthogonal, and circular are provided as easy-to-integrate components that can be configured programmatically to suit most layout demands. Even incremental layout is made simple, and our edge routing algorithms make it easy to route edges into existing diagrams.

Viewer Component

Includes the following Java packages: y.anim, y.io and y.io.* subpackages, y.option, y.view, y.view.hierarchy, and y.view.tabular.


The Viewer component also builds upon the Basic component. It features the powerful graph viewer UI component showcased in the yEd graph editor, along with several other useful Swing-based GUI elements. The Viewer component also supports diverse graph and image file formats (GraphML, JPG, GIF) and has excellent printing capabilities.