Skip to content

Latest commit

Β 

History

History
64 lines (43 loc) Β· 2.01 KB

File metadata and controls

64 lines (43 loc) Β· 2.01 KB

extendr

πŸš€ Blazingly Fast & User-friendly R extensions using Rust πŸ¦€

extendr brings the performance, safety, and reliability of Rust to R. Write fast and scalable R packages without worrying about R's C API.

Documentation & Resources

Key Repositories

Repository Description
extendr πŸ¦€ extendr's source code
rextendr πŸ“¦ Create and manage your Rust-based R packages
awesome-extendr ⭐ Curated list of extendr packages
extendr.github.io πŸ“š Documentation website source

Community

  • Discord: Join our community discussions πŸ’¬ (Discord invite)
  • Issues: Report bugs and request features in individual repositories πŸ›
  • Contributions: See CONTRIBUTING.md in each repository 🀝

Core Components

Rust workspace πŸ¦€ with battle-tested crates:

  • extendr-api - ergonomic, opinionated, and safe interface between R and Rust
  • extendr-engine - launch R sessions from Rust
  • extendr-ffi - hand-crafted bindings to R's C-API

R package πŸ“¦ for seamless development:

  • rextendr - a {usethis}-like package that scaffolds extendr-powered R packages

Getting Started

Prerequisites

  • R (β‰₯ 4.2)
  • cargo and rustc (β‰₯ 1.65) - install via rustup

Get Started

We recommend using the development version of {rextendr} from GitHub.

# Install from CRAN
install.packages("rextendr")

# Development version
remotes::install_github("extendr/rextendr")

usethis::create_package("helloextendr")
rextendr::use_extendr()
rextendr::document()

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