Graph::Easy
Convert from any graph formatto Graph::Easy Convert from Graph::Easyto any other format
Graph::Easy is a Perl module and accompanying command-line tool for describing, laying out, and rendering graphs. It was originally written by Tels (with releases dating from around 2004-2005) and later maintained by Shlomi Fish, distributed through CPAN. Its distinguishing feature is a compact, mnemonic text syntax in which the source reads almost like the picture it produces: nodes are written in square brackets and edges as arrows, so [ Bonn ] --> [ Berlin ] yields two boxes joined by an arrow. The syntax supports edge labels ([ A ] -- drive --> [ B ]), several arrow styles (directed -->, bidirectional <->, dotted ..>, dashed, and wavy variants), grouping of nodes into subgraphs, and per-node/per-edge attributes given in curly braces for color, shape, and similar styling.
Internally the graph is an object model of nodes, edges, and groups, built either programmatically through the Perl API or by parsing text via Graph::Easy::Parser. Layout is computed by a custom grid-based (Manhattan) engine using chain- and force-based heuristics to place nodes on a lattice and route edges through orthogonal grid cells. This grid orientation makes Graph::Easy best suited to flowcharts, hierarchy trees, and network diagrams rather than dense or general force-directed graphs.
Its most notable capability is output breadth. The same graph can be emitted as ASCII art, as Unicode box-drawing "boxart," as CSS/table-based HTML, as SVG, and as several interchange formats including Graphviz format:dot, format:graphml, and VCG/GDL (format:gdl-aisee). On the input side it parses its own native syntax plus Graphviz DOT and VCG/GDL, so the bundled graph-easy script doubles as a lightweight format converter. This positions it alongside tools like Graphviz for rendering and graph-format-conv. or convert2mermaid for translation, while the ASCII/boxart output overlaps in spirit with text-diagram formats such as Mermaid and PlantUML.
The main strengths are the readable notation, the ability to generate diagrams embeddable directly in plain-text files (README files, code comments, terminals) with no external renderer, and the multi-format export. Limitations are real: the layout engine handles only modest graph sizes well, complex or cyclic graphs can produce awkward routing, and the project is effectively single-maintainer with its last release (0.76) in 2016, so it is stable but not actively evolving.
Graph Formats(Input & Output)
Output Formats
Frequently Asked Questions
What graph file formats does Graph::Easy support?
See the list on this page — it shows every format Graph::Easy can read, write and display.
How do I import a graph into Graph::Easy?
Convert your file to a format Graph::Easy can read, then open it in Graph::Easy. Use GraphInOut to get a Graph::Easy-compatible file in seconds.
How do I convert a file so Graph::Easy can open it?
Use the convert links above — upload or paste your graph, pick a format Graph::Easy accepts and download the result, right in your browser.
