Rserve 是一个用纯 C 语言编写的客户端服务器实现,它启动一个服务器并生成多个进程,每个进程都有自己的 R 工作区。由于 R 对多线程的限制,这不是线程而是进程。它使用 QAP 打包协议作为客户端和服务器之间的主要传输形式。您通过客户端(PHP、Java、C++)向服务器执行命令,它会返回 REXP 对象,这些对象本质上是到 R 的底层 SEXP 数据对象的映射。Rserve 还提供了一个 websockets 版本,它确实可以通过 websockets 传输数据,但 api 没有很好的文档记录。它还支持通过配置文件进行基本身份验证。
Rstudio 是一个 C++ 和 gwt 应用程序,它为 R 提供了一个基于 Web 的前端。AFAIK 它使用 json 作为主要传输方式,并支持通过 pam 进行身份验证。每个用户都在其主目录中配置了一个工作区。它运行一个与 Rserve 非常相似但又不同的服务器,以使用 RCPP 与 R 进行通信。它还有自己的绘图驱动程序,用于包装绘图设备,以便它可以拾取要提供给 ui 的绘图。它具有更多功能,例如从 ui 单步执行代码和查看工作区变量。
从功能上讲,它们的相似之处在于它们提供了到 R 的客户端/服务器连接,但恕我直言,比较在此停止。