cppally: A 'C++20' API for R

A header-only 'C++20' API for manipulating R data structures from 'C++'. Provides 'C++20' concepts specific to R, custom scalar and vector classes with built-in NA handling, automatic object protection, 'SIMD' (single-instruction-multiple-data), parallelisation, and a streamlined system for registering 'C++' functions, including templates, to R. Full API reference and documentation are available at <https://nicchr.github.io/cppally/>.

Version: 0.1.0
Depends: R (≥ 4.5.0)
Suggests: bench, bit64, brio, callr, cli, cpp11, decor, desc, devtools, fs, glue, knitr, pkgload, purrr, readr, rmarkdown, roxygen2, rstudioapi, stringr, testthat (≥ 3.0.0), usethis, vctrs, withr
Published: 2026-04-28
DOI: 10.32614/CRAN.package.cppally (may not be active yet)
Author: Nick Christofides ORCID iD [aut, cre, cph], Martin Leitner-Ankerl [cph] (Author of bundled ankerl::unordered_dense library), Malte Skarupke [cph] (Author of bundled ska_sort library), Posit Software, PBC [cph] (SEXP protection mechanism in r_protect.h inspired by cpp11)
Maintainer: Nick Christofides <nick.christofides.r at gmail.com>
BugReports: https://github.com/NicChr/cppally/issues/
License: MIT + file LICENSE
Copyright: see file COPYRIGHTS
URL: https://nicchr.github.io/cppally/
NeedsCompilation: no
SystemRequirements: C++20
Materials: README, NEWS
CRAN checks: cppally results

Documentation:

Reference manual: cppally.html , cppally.pdf
Vignettes: Getting started with cppally (source, R code)
Automatic Protection (source, R code)

Downloads:

Package source: cppally_0.1.0.tar.gz
Windows binaries: r-devel: not available, r-release: not available, r-oldrel: not available
macOS binaries: r-release (arm64): not available, r-oldrel (arm64): not available, r-release (x86_64): not available, r-oldrel (x86_64): not available

Linking:

Please use the canonical form https://CRAN.R-project.org/package=cppally to link to this page.