Create the scaffolding needed to add Rust extendr code to an R package.
use_extendr() adds a small Rust library with a single Rust function that
returns the string "Hello world!". It also adds wrapper code so this Rust
function can be called from R with hello_world().
Usage
use_extendr(
path = ".",
crate_name = NULL,
lib_name = NULL,
quiet = FALSE,
overwrite = NULL,
edition = c("2021", "2018")
)Arguments
- path
File path to the package for which to generate wrapper code.
- crate_name
String that is used as the name of the Rust crate, specifically
[package] nameinCargon.toml. IfNULL(default), sanitized R package name is used instead.- lib_name
String that is used as the name of the Rust library, specifically
[lib] nameinCargo.toml. IfNULL(default), sanitized R package name is used instead.- quiet
Logical indicating whether any progress messages should be generated or not.
- overwrite
Logical scalar or
NULLindicating whether the files in thepathshould be overwritten. IfNULL(default), the function will ask the user whether each file should be overwritten in an interactive session or do nothing in a non-interactive session. IfFALSEand each file already exists, the function will do nothing. IfTRUE, all files will be overwritten.- edition
String indicating which Rust edition is used; Default
"2021".
Details
Generated files
R/extendr-wrappers.R: auto-generated R wrappers. Do not edit by hand.src/entrypoint.c: C entry point forwarding R's routine registration to the Rust library.src/Makevars.in/src/Makevars.win.in: Makefile templates compiled and employed at package build time.src/<pkg>-win.def: Windows DLL export definitions.src/.gitignore: Ignores compiled artifacts, Cargo directories, and generatedMakevarsfiles.src/rust/Cargo.toml: Rust package manifest with crate name, edition,extendr-apidependency, and release profile settings.src/rust/src/lib.rs: Main Rust library with an examplehello_world()function and theextendr_module!macro.src/rust/document.rs: Rust binary that writesR/extendr-wrappers.Rby introspecting exported function metadata at build time.tools/msrv.R: Verifies the installed Rust toolchain meets the MSRV inDESCRIPTION.tools/config.R: Readstools/msrv.R, checksDEBUG/NOT_CRANenv vars, and writes the finalMakevarsfile from the.intemplate.configure/configure.win: Shell scripts run before compilation that invoketools/config.RviaRscript.cleanup/cleanup.win: Shell scripts that removesrc/Makevarson package uninstall.