jay-gee-eff
Convert from any graph formatto jay-gee-eff Convert from jay-gee-effto any other format
jay-gee-eff is a small open-source Node.js/JavaScript library for reading, writing, and manipulating graphs stored in JGF, the JSON Graph Format (see JGF, and the versioned JGF 2.0). It is authored by Yuval Naveh (GitHub handle bigman73) and distributed on npm under the package name "jay-gee-eff" (a phonetic spelling of the JGF acronym). The project implements the community JSON Graph Specification maintained by the jsongraph organisation, which defines a plain-JSON envelope in which a graph carries a list (or map) of nodes and a list of directed edges, each optionally decorated with a label and an arbitrary metadata object.
The library models a graph in memory and exposes a compact API for programmatic construction and traversal. Nodes are keyed by an id and hold a label plus optional metadata (for example a player object keyed "lebron-james#2544" with metadata {"type": "NBA Player"}); edges reference a source and target node id and carry a relation and label (for example relation "plays-for"). Typical operations include addNode and addEdge, node/edge lookup and removal, metadata updates, validation of both the JSON syntax and semantic integrity (such as edges pointing to existing nodes), and loadFromFile / saveToFile for round-tripping JGF documents. A distinguishing feature is support for multi-graphs and for merging several "partial" JGF files that together describe one larger graph.
In the broader graph-data and format-conversion landscape, jay-gee-eff occupies a narrow but useful niche: it is a native handler for one specific JSON serialization rather than a general converter or analysis engine. Where libraries such as NetworkX, graph-tool, igraph, or JGraphT provide algorithms and multi-format I/O, jay-gee-eff simply gives JavaScript applications a typed, validated way to emit and ingest JGF, which can then be consumed by JGF-aware viewers or transcoded to formats like GML, GraphML, or DOT by other tooling. It pairs naturally with JSON-oriented graph ecosystems.
Its strengths are simplicity, a clean object model, schema validation, and the partial-file merge capability. Its limitations are equally clear: the scope is confined to JGF, it offers no graph algorithms or layout, and it targets the modern JGF v2 schema only. Support for the incompatible JGF v1 schema was dropped at version 3.0.0 (v1 was available up to jay-gee-eff 1.3.1), so legacy v1 documents will not load. A separate community fork, jay-gee-eff-for-web, repackages the code for browser use.
Graph Formats(Input & Output)
Frequently Asked Questions
What graph file formats does jay-gee-eff support?
See the list on this page — it shows every format jay-gee-eff can read, write and display.
How do I import a graph into jay-gee-eff?
Convert your file to a format jay-gee-eff can read, then open it in jay-gee-eff. Use GraphInOut to get a jay-gee-eff-compatible file in seconds.
How do I convert a file so jay-gee-eff can open it?
Use the convert links above — upload or paste your graph, pick a format jay-gee-eff accepts and download the result, right in your browser.