Vonage/rxzu

Support for large networks

florianeichin opened this issue · 3 comments

Right now, if I am right, we are drawing all the elements as html elements. When having really big Networks with up to 1000 nodes for example, this becomes really slow.
Wouldn't it be an option to use a canvas instead? Or implement it as a second rendering option?
Would this be more or less easily be supported by the architecture of the lib or would this break everything?

Hi @florianeichin, actually large networks can work with HTML and we do have on our roadmap to try and render only what's in the view and not the entire diagram.
Also it is possible to create a Canvas wrapper around @rxzu/core, but be aware that canvas implementation have it's own limitations and won't allow for highly customizing and the usage of HTML elements on top of it which is limits the options a lot.
It's all a matter of how the factories generate the widgets (in case of a canvas everything is an SVG obviously, the links are already like that), and how you attach them to canvas itself.

Hi @DanielNetzeriAm, thanks for the response and the clarification! We give it a try and see how we can improve the performance on our side.

My pleasure, another thing you can do to test performance, clone the repository in the Storybooks there is an implementation of performance, you can easily adjust the amount of nodes, links and labels in there and test it.