fabric.js is a powerful and quite simple javascript library for HTML5 canvas. It provide a interactive platform to work with the HTML5 canvas. Using fabric you can create object/shapes on canvas from simple geometrical shapes to complex shapes. You can even work with images using fabric.js. fabric.js also supports animations. It provides controls to work with images like dragging them, scaling them rotating them. It allows grouping of shapes/objects that can be manipulated together. it supports events not only limited to the canvas element but with objects as well. It even provide with functionlaity to serialize the canvas to SVG or JSON and reuse it as and when needed. It even supports running fabric under Node.js, with help of jsdom and node-canvas libraries.
Fabric supports a number of events to allow for interactivity and extensibility. In order to subscribe to events for a canvas use the on
method the way its used in jQuery. And you wish to manually trigger any event use the trigger
method. All the events are within the scope of a particular canvas instance. Visit Link for more information on events
For more about FabricJS canvas serialization Refer the link Canvas Serialization