The RInside package provides a few classes for seamless embedding of R inside of C++ applications by relying on Rcpp.
Provided with the package itself are nine subdirectories with
examples: from more than a dozen basic command-line examples (in
directory standard
) to graphical user-interfaces (using
both Qt and Wt), linear algebra with Armadillo and Eigen,
parallel computing with MPI to a sandboxed server, and (since release
0.2.16) a simple (and more limited) interface for embedding insice C
applications.
The simplest example (modulo its header) is examples/standard/rinside_sample0.cpp
#include <RInside.h> // for the embedded R via RInside
int main(int argc, char *argv[]) {
(argc, argv); // create an embedded R instance
RInside R
["txt"] = "Hello, world!\n"; // assign a char* (string) to 'txt'
R
.parseEvalQ("cat(txt)"); // eval the init string, ignoring any returns
R
(0);
exit}
The Qt example directory produces this application for showing how to use R (to estimate densities) inside a C++ executable (providing the GUI):
The code is portable across operating systems. Similar, the Wt example directory contains this C++-based web application doing the same:
The RInside web page has some more details.
Dirk Eddelbuettel, Romain Francois, and Lance Bachmeier
GPL (>= 2)