Raphael is a JavaScript library for drawing vector graphics. It allows creating graphical elements like circles, ellipses, images, paths, rectangles and text. These elements can be animated, have their attributes changed, and respond to events. The library works by using either Canvas, SVG or VML depending on browser support. It has a simple API that is similar across supported technologies. Raphael is lightweight at only 16kb and continues to be updated with new features.