Public | Automated Build

Last pushed: 2 days ago
Short Description
The plumber API server for R.
Full Description


<img align="right" src="" />

plumber allows you to create a REST API by merely decorating your existing R source code with special comments. Take a look at an example.

# myfile.R

#* @get /mean
normalMean <- function(samples=10){
  data <- rnorm(samples)

#* @post /sum
addTwo <- function(a, b){
  as.numeric(a) + as.numeric(b)

These comments allow plumber to make your R functions available as API endpoints. You can use either #* as the prefix or #', but we recommend the former since #' will collide with Roxygen.

> library(plumber)
> r <- plumb("myfile.R")  # Where 'myfile.R' is the location of the file shown above
> r$run(port=8000)

You can visit this URL using a browser or a terminal to run your R function and get the results. Here we're using curl via a Mac/Linux terminal.

$ curl "http://localhost:8000/mean"
$ curl "http://localhost:8000/mean?samples=10000"

As you might have guessed, the request's query string parameters are forwarded to the R function as arguments (as character strings).

$ curl --data "a=4&b=3" "http://localhost:8000/sum"

You can also send your data as JSON:

$ curl --data '{"a":4, "b":5}' http://localhost:8000/sum


You can install the latest stable version from CRAN using the following command:


If you want to try out the latest development version, you can install it from GitHub. The easiest way to do that is by using devtools.



plumber was originally released as the rapier package and has since been renamed (7/13/2015).

Docker Pull Command
Source Repository

Comments (0)