sorhawell / hello_positive

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 i686-pc-windows-gnu and x86_64-pc-windows-gnu targets:

rustup target add x86_64-pc-windows-gnu
rustup target add i686-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.

About

License:Other


Languages

Language:Rust 71.5%Language:R 21.2%Language:C 7.3%