Skip to content

Latest commit

 

History

History
60 lines (39 loc) · 1.71 KB

README.md

File metadata and controls

60 lines (39 loc) · 1.71 KB

Minimal Example of Calling Rust from R

R build status License: MIT

This is a template package to demonstrate how to call Rust from R using the extendr-api crate.

Installation

Before you can install this package, you need to install a working Rust toolchain. We recommend using rustup.

On Windows, you'll also have to add the x86_64-pc-windows-gnu target:

rustup target add x86_64-pc-windows-gnu

Once Rust is working, you can install this package via:

remotes::install_github("extendr/helloextendr")

After installation, the following should work:

library(helloextendr)

hello_world()
#> [1] "Hello world!"

Development

Install rextendr

You will need rextendr package to generate wrappers. Please install it before proceeding to the next step.

remotes::install_github("extendr/rextendr")

Generate wrappers

When you make either of the following changes to the Rust source code, you'll need to regenerate the wrappers.

  • add a new function
  • modify the signature of an existing function
  • modify the documentation written on Rust code (on the lines starting with ///)

This can be done by:

rextendr::document()

Which will compile the Rust code as well as updating documentation.

Creating your own project

For a fully worked out demonstration of how to create a Rust + R library see here.