Todays release of the latest version of cmmn-js introduces a new rendering layer that brings significant performance improvements to cmmn-js. The old layer based on Snap.svg is now gone from cmmn-js as well as diagram-js, the underlying diagram toolkit. With that sorted out, cmmn-js now imports diagrams twice as fast, is smaller in bundle size and feels more responsive. In addition to these changes, the release ships with improved direct editing for text annotations and fixes several bugs, too.
Snap.svg has been an integral part of both diagram-js and cmmn-js for a long time. It abstracts away a lot of the complexity of handling SVG elements in the DOM and provides great features like path intersectionss. Unfortunately it comes with a huge performance impact as well. Since our tools only use a fraction of the features provided by the library we wanted to remove it from our toolbelt for a long time. With the new rendering layer cmmn-js is significantly faster and feels more responsive. For more details on performance head over to the bpmn-js release blog post.
We are looking for your feedback regarding the performance and the API changes.