Please read before downloading/using the Windows version of Rserve!
The Windows version of Rserve is slightly limited compared to its unix counterpart. Quick overview of the differences: (for technical details see bottom of this page)
Download binary for R-2.2.1: Rserve.exe (Rserve 0.4-0, updated 2006/01/31).
(debug version: Rserve.exe - ca. 800kb).
Download binary for R-2.2.0: Rserve.exe (Rserve 0.3-17, updated 2005/10/13).
(debug version: Rserve.exe - ca. 800kb).
Download binary for R-2.1.1: Rserve.exe (Rserve 0.3-17, updated 2005/07/27).
(debug version: Rserve.exe - ca. 800kb).
Please note that you need JRclient-RDA08 or later for Rserve version 0.3 and higher!
older releases:
Download binary for R-2.1.0: Rserve.exe (Rserve 0.3-16, updated 2005/05/02).
(debug version: Rserve.exe - ca. 800kb).
Download binary for R-2.0.1: Rserve.exe (Rserve 0.3-15, updated 2004/11/30).
(debug version: Rserve.exe - ca. 1MB).
Download binary for R-2.0.0: Rserve.exe (Rserve 0.3-14, updated 2004/10/08).
Download binary for R-1.9.1: Rserve.exe (Rserve 0.3-11, updated 2004/07/13).
Debug version for R-1.9.1 (produces a lot of output): Rserve.exe (ca. 800kB).
Download binary for R-1.9.0: Rserve.exe (Rserve 0.3-11, updated 2004/04/26).
Debug version for R-1.9.0 (produces a lot of output): Rserve.exe (ca. 800kB).
Download binary for R-1.8.1: Rserve.exe (Rserve 0.3-9), debug version: Rserve.exe.
Download binary for R-1.8.0: Rserve.exe (Rserve 0.3-6)
Download binary for R-1.7.1: Rserve.exe (Rserve 0.1-9)
Download binary for R-1.7.0: Rserve.exe (Rserve 0.1-8)
Download binary for R-1.6.2: Rserve.exe (Rserve 0.1-6)
Make sure you download the proper binary for your version of R since they are not compatible across versions.
Installation: Copy the binary Rserve.exe to the same directory where R.dll is located (by default C:\Program files\R\rw2011\bin). Rserve automatically detects latest installed version from the registry (make sure R-2.1.1 is the most recently installed). (Optionally Rserve can be started from anywhere as long as the R.dll is in the PATH, but this is not required if Rserve is copied into the bin directory).
Compiling your own Rserve
Rserve can be compiled from sources just like any other R package. If you cannot find a binary version for your R (updating to the latest R version is in general recommended!), you can compile Rserve yourself (assuming you know what this means). If you compiled R for Windows yourself, then you probaby know what to do. If you didn't, get the proper tools from this page and set the PATH correspondingly. Locate your R installation and unpack the source package in \src\library relative to the R root (that is you should get \src\library\Rserve directory). Go to \src\gnuwin32 and type:
sh make libR.a make pkg-RserveThis should do the trick. If this is successful, you will find a new file Rserve.exe in the \bin directory. If you encounter problems, check your PATH setting and your tools (e.g. does gcc --version give you an error?). If this doesn't help, read the Windows FAQ and the \src\gnuwin32\INSTALL file in the source distribution of R.
If you want to compile the debug-version of Rserve (which produces a lot of output, such as all packets sent, R objects/expresions involved etc.), replace make pkg-Rserve by make DEBUG=T pkg-Rserve in the above building process.
Note: Rserve needs some R header files that are unfortunately missing from the binary distribution of R: Startup.h and psignal.h They can be found in the R sources in src/include and gnuwin32/fixed/h correspondingly. Please copy both files to the src/include directory of the Rserve package (since R 2.1 only psignal.h is needed and is included in the Rserve sources, so forget about it).
Details concerning Windows version of Rserve
Since the Windows operating system doesn't support fork method for spawning copies of a process, it is not possible to initialize R and use initialized copies for all subsequent connections in parallel. Therefore the Rserve for Windows supports no concurrent connections. This implies that all subsequent connections share the same namespace and sessions (as in >=0.4 version on unix) cannot be supported. It is still possible to start multiple Rserves to handle multiple connections (just make sure you use different port for each one).
Error handling in R.dll doesn't seem to work as it does in unix versions. Although Rserve uses Rf_tryEval, R still crashes (or more recent versions just gracefully abort) on an error. Therefore you should use "try(...)" for any evaluated command. A dirty hack would be to wrap all evaluated statements in try(...) automatically, but then the result returned may be string even if the user didn't expect it. This issue is being investigated.