🚀 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.
- Website: https://extendr.github.io/
- User Guide: https://extendr.github.io/user-guide/
- API Documentation: https://docs.rs/extendr-api/
- R Package Docs: https://extendr.github.io/rextendr/
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 |
- Discord: Join our community discussions 💬 (Discord invite)
- Issues: Report bugs and request features in individual repositories 🐛
- Contributions: See CONTRIBUTING.md in each repository 🤝
Rust workspace 🦀 with battle-tested crates:
extendr-api
- ergonomic, opinionated, and safe interface between R and Rustextendr-engine
- launch R sessions from Rustextendr-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
- R (≥ 4.2)
cargo
andrustc
(≥ 1.65) - install via rustup
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!"