The jsPlumb Toolkit offers a set of packages to assist you in rapidly building powerful applications whose focus is on visual connectivity. Some key features of the Toolkit are:
- A powerful declarative mechanism for defining the appearance and behaviour of the various parts of your UI.
- Data binding via client side templates, supporting declarative configuration of connectivity.
- An underlying directed graph, allowing you to query the data in several ways.
- A pan/zoom widget with the ability to serialize its state (either manually or automatically) to local storage or cookies.
- A miniview widget to assist in the navigation of large datasets.
- Automatic layouts (Hierarchical, Spring, Circular, Balloon, Absolute), plus the ability to write your own.
- Data load/save Either automatically or on-demand.
- Angular integration
- React integration
- Vue 2 integration
- Vue 3 integration
This site provides the documentation for the Toolkit edition. For Community edition documentation, visit this page.
In this git repository you will find source code and documentation for all of the demonstrations on the jsPlumb Toolkit site, plus a few more:
Note: at the time of writing, demonstrations for 5.x are maintained in each repository on a
5.x branch. When 5.x comes out of beta, these demonstrations will switch to the main branch.
The best place to get started familiarising yourself with the architecture of the Toolkit is to clone one of the demonstrations- either the Database Visualizer or the Flowchart Builder might be a good option, since they are fully-featured apps. If you're using Vue, Angular or React there are versions of these apps that use the appropriate library integration that ships with the Toolkit.
Alternatively, you might like to start with the documentation. The Data Model page is a good place to start looking around. In a nutshell, the Toolkit uses a directed graph as its core data structure. Every app that has a need for jsPlumb - which is to say a need for the ability to connect entities - can be thought of in terms of a directed (or undirected) graph.