JSPM

@frutuoso/graph.gl

2.0.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 13
  • Score
    100M100P100Q45092F
  • License MIT

WebGL2-Powered Visualization Components for Graph Visualization - Modernized for 2025

Package Exports

  • @frutuoso/graph.gl
  • @frutuoso/graph.gl/package.json

Readme

Graph.gl

CI npm version License: MIT

WebGL2-Powered Visualization Components for Graph Visualization - Modernized for 2025

A React component library for visualizing large graphs with customizable layouts and rendering. Originally created by Uber, now modernized and maintained for phylogenetic tree visualization and other graph-based applications.

โœจ Features

  • ๐Ÿš€ High Performance: WebGL-powered rendering via deck.gl 9
  • โš›๏ธ Modern React: Built for React 18 with hooks support
  • ๐ŸŽจ Highly Customizable: Composable API for nodes, edges, and layouts
  • ๐Ÿ“Š Multiple Layouts: D3 force-directed, simple, and custom layouts
  • ๐ŸŒณ Phylogenetic Trees: Perfect for tree visualization use cases
  • ๐ŸŽฏ Interactive: Built-in support for dragging, clicking, and viewport manipulation
  • ๐Ÿ“ฆ TypeScript Ready: Full type definitions included (coming soon)
  • ๐Ÿงช Well Tested: Comprehensive test suite with Jest

๐Ÿš€ Installation

npm install @frutuoso/graph.gl

Peer Dependencies

This library requires React 18+ and additional deck.gl dependencies:

npm install react@^18.0.0 react-dom@^18.0.0
npm install @deck.gl/core@^9.0.0 @deck.gl/layers@^9.0.0 @deck.gl/react@^9.0.0
npm install @luma.gl/core@^9.0.0 @luma.gl/engine@^9.0.0 @loaders.gl/core@^4.0.0

Or with yarn:

yarn add @frutuoso/graph.gl
yarn add react@^18.0.0 react-dom@^18.0.0
yarn add @deck.gl/core@^9.0.0 @deck.gl/layers@^9.0.0 @deck.gl/react@^9.0.0
yarn add @luma.gl/core@^9.0.0 @luma.gl/engine@^9.0.0 @loaders.gl/core@^4.0.0

๐Ÿ“– Quick Start

import React from 'react';
import GraphGL, {
  JSONLoader,
  NODE_TYPE,
  D3ForceLayout
} from '@frutuoso/graph.gl';

const MyGraph = ({data}) => {
  const graph = JSONLoader({
    json: data,
    nodeParser: node => ({id: node.id}),
    edgeParser: edge => ({
      id: edge.id,
      sourceId: edge.sourceId,
      targetId: edge.targetId,
      directed: true,
    }),
  });

  return (
    <GraphGL
      graph={graph}
      layout={new D3ForceLayout()}
      nodeStyle={[
        {
          type: NODE_TYPE.CIRCLE,
          radius: 10,
          fill: 'blue',
          opacity: 1,
        },
      ]}
      edgeStyle={{
        stroke: 'black',
        strokeWidth: 2,
      }}
      enableDragging
    />
  );
};

export default MyGraph;

๐ŸŽฏ Use Cases

  • Phylogenetic Tree Visualization: Display evolutionary relationships
  • Knowledge Graphs: Explore interconnected data
  • Network Diagrams: Visualize complex systems
  • Social Networks: Map relationships and connections
  • Dependency Graphs: Understand project dependencies

๐Ÿ“š Documentation

๐Ÿ”ง Development

Setup

# Clone the repository
git clone https://github.com/Gongamax/graph.gl.git
cd graph.gl

# Install dependencies
yarn install

# Run tests
yarn test

# Run linter
yarn lint

# Build the library
yarn build

Testing

# Run all tests
yarn test

# Run tests with coverage
yarn cover

# Run linter
yarn lint

๐Ÿ†• What's New in 2.0

This is a major modernization release bringing graph.gl from 2019 to 2025 standards:

Updated Dependencies

  • โš›๏ธ React 16 โ†’ 18
  • ๐Ÿ“Š D3 v5 โ†’ v7
  • ๐ŸŽฎ deck.gl 7 โ†’ 9
  • ๐Ÿงช Jest 23 โ†’ 29
  • ๐Ÿ’… styled-components 4 โ†’ 6

Improvements

  • โœ… Modern build tooling (Babel 7.24, ESLint 8)
  • โœ… All tests passing (30 tests, 12 suites)
  • โœ… Production build verified
  • โœ… ES modules support
  • โœ… Automatic JSX runtime

See CHANGELOG.md for detailed migration guide.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

MIT ยฉ Gonรงalo Frutuoso

Originally created by Uber Technologies, Inc.

๐Ÿ™ Credits

๐Ÿ“ฌ Contact

Gonรงalo Frutuoso - goncalofrutuoso@gmail.com

Project Link: https://github.com/Gongamax/graph.gl


Made with โค๏ธ for the graph visualization community