Some of these libraries have high level support for advanced features and others present a low level drawing features, most of them open source and others with BSD license.
Flowchart draws simple SVG flow chart diagrams from textual representation of the diagram.
Cytoscape.js allows you to easily display and manipulate rich, interactive graphs. Because Cytoscape.js allows the user to interact with the graph and the library allows the client to hook into user events, Cytoscape.js is easily integrated into your app, especially since Cytoscape.js supports both desktop browsers, like Chrome, and mobile browsers, like on the iPad. Cytoscape.js includes all the gestures you would expect out-of-the-box, including pinch-to-zoom, box selection, panning, et cetera.
Cytoscape.js supports many different graph theory usecases. It supports directed graphs, undirected graphs, mixed graphs, loops, multigraphs, compound graphs (a type of hypergraph), and so on.
Cytoscape.js also has graph analysis in mind: The library contains many useful functions in graph theory. You can use Cytoscape.js headlessly on Node.js to do graph analysis in the terminal or on a web server. Cytoscape.js is an open-source project, and anyone is free to contribute.
JointJS makes it easy to create visual tools of various kinds. The event-driven nature together with MVC architecture of JointJS makes it easy to plug-in any backend technology. (It is highly recommended to use the dependecies [jQuery, Backbone and Lodash] ).
- Various Shapes (Rect, Circle, Ellipse, Text, Image, Path, ERD, Org Chart, FSA, UML, BPMN, PN, DEVS, ...)
- Custom Shapes Via SVG Or Programmatically Rendered.
- Interactive Elements And Links.
- Connecting Diagram Elements With Links.
- Customizable Links, Their Arrowheads And Labels.
- Links Smoothing (Bezier Interpolation) & Smart Routing.
- Magnets/Ports (Link Connection Points) Can Be Placed Basically Anywhere.
- Hierarchical Diagrams.
- Serialization/Deserialization To/From JSON Format.
- Highly Event Driven - You Can React On Any Event That Happens Inside The Paper.
- Tons Of Mathematical Functions Operating In 2D Space.
- SVG Library Included.
- Zoom In/Out.
- Touch Support.
- Filters And Gradients.
- NodeJS Support.
- Fast - Ability To Render Hundreds (Or Even Thousands) Of Elements And Links With Instant Interaction.
- Flexible Plugin System.
- MVC Architecture.
- And a Lot More.
GoJS offers many advanced features for user interactivity such as drag-and-drop, copy-and-paste, in-place text editing, tooltips, context menus, automatic layouts, templates, data binding and models etc. Transactional state and undo management, palettes, overviews, event handlers, commands, and an extensible tool system for custom operations.
However, this is a paid library an you're limited to the evaluation period but due to its awesomeness, needs to be mentioned in this post.