RStudio has a custom CPP backend that communicates using JSON over HTTP. Its a fine approach for cross platform support and that source tree was the first thing I looked at when looking for client/server models for R.Net
For plot output, they generate images and store them on the backend with some sort of cache and paging manager which works well in a single session setting.
For us, the original desire for SVG output was so that we could style it similarly to our other data visualization framework (D3), but given the size of some of the plots, and default styles of higher level abstractions like ggplot2, svg is less than stellar at times and generating images is the way to go. I don't think I want to manage multi-session image caches though, but that's a debatable choice.
For plot output, they generate images and store them on the backend with some sort of cache and paging manager which works well in a single session setting.
For us, the original desire for SVG output was so that we could style it similarly to our other data visualization framework (D3), but given the size of some of the plots, and default styles of higher level abstractions like ggplot2, svg is less than stellar at times and generating images is the way to go. I don't think I want to manage multi-session image caches though, but that's a debatable choice.