Closed nx10 closed 2 years ago
Updates:
later
devs seem to be unresponsive I will write a custom wrapper that allows for more fine grained communication between the main (R) thread and the webserver threads. This will also make debugging problems like nx10/httpgd#67 much easier. If a C/C++ dev wants to help with this but is unsure about implementation details of httpgd
I would be happy to explain details.Boost/Beast
and the abandoned Belle
library in the future.Edit: It seems like packages can not be submitted until January 3rd as the CRAN submission team is on vacation. The code is ready now and I will upload as soon as its possible again.
After some technical difficulties with the new windows server 1.3 is now on CRAN.
I think its time to consider breaking httpgd
up into smaller packages. I have a few reasons for this:
knitr
could benefit from the speed, in memory graphics access and abstraction httpgd provides.My proposal is breaking httpgd in 2 seperate packages:
unigd
: Universal/unified graphics device: All graphics rendering functionality. Easy R API to access plots in any format. C++ API to create interactive devices. Primary focus on rendering speed.httpgd
: All web (client, server) and async functionality. Primary focus on UX and security.Let me know what you think.
Thank you very much @nx10 I really love httpgd and I use it every day, However, I sometimes hit performance limits when plotting ggplot graphics with a lot of points. Those issues do not occur with the default R graphics device. I do not know If GPU utilization is the difference here but if this would be solved, httpgd would be just perfect. Ahh and splitting up the package is a great Idea in my opinion. I really do not need the webserver.
@BerriJ Thank you very much, I am glad you like it. How are you using httpgd when the performance issues appear? Do you use VScode / RStudio and are you using the plot viewer or saving files with R instructions?
I'm using httpgd inside of VS-Code together with the R extension. I can easily kill httpgd with
plot(rnorm(1000000), rnorm(1000000))
Which, admittedly, are a lot of points. I have some more complicated ggplots with fewer points that also fail. However, creating a reprex here wouldn't be that easy. However, if you think a reprex of those plots would be beneficial, I'll create one for you.
I usually save my plots using ggsave or using tikzdevice. So this does not rely on httpgd right? Saving is never a problem.
Closed in favor of https://github.com/nx10/httpgd/pull/111
Server:
Client:
Docs: