cpp4r: Header-Only 'C++' and 'R' Interface

Provides a header only, 'C++' interface to 'R' with enhancements over 'cpp11'. Enforces copy-on-write semantics consistent with 'R' behavior. Offers native support for ALTREP objects, 'UTF-8' string handling, modern 'C++11' features and idioms, and reduced memory requirements. Allows for vendoring, making it useful for restricted environments. Compared to 'cpp11', it adds support for converting 'C++' maps to 'R' lists, 'Roxygen' documentation directly in 'C++' code, proper handling of matrix attributes, support for nullable external pointers, bidirectional copy of complex number types, flexibility in type conversions, use of nullable pointers, and various performance optimizations.

Version: 0.3.0
Depends: R (≥ 4.0.0)
Imports: brio, cli, decor, desc, glue, tibble, tools, utils, vctrs, withr
Suggests: mockery, roxygen2, testthat (≥ 3.2.0)
Published: 2025-10-16
DOI: 10.32614/CRAN.package.cpp4r (may not be active yet)
Author: Mauricio Vargas Sepulveda ORCID iD [aut, cre], Posit Software, PBC [aut] (Original cpp11 package)
Maintainer: Mauricio Vargas Sepulveda <m.vargas.sepulveda at gmail.com>
BugReports: https://github.com/pachadotdev/cpp4r/issues
License: Apache License (≥ 2)
URL: https://cpp4r.org, https://github.com/pachadotdev/cpp4r
NeedsCompilation: no
Materials: README, NEWS
CRAN checks: cpp4r results

Documentation:

Reference manual: cpp4r.html , cpp4r.pdf

Downloads:

Package source: cpp4r_0.3.0.tar.gz
Windows binaries: r-devel: not available, r-release: cpp4r_0.3.0.zip, r-oldrel: not available
macOS binaries: r-release (arm64): cpp4r_0.3.0.tgz, r-oldrel (arm64): cpp4r_0.3.0.tgz, r-release (x86_64): cpp4r_0.3.0.tgz, r-oldrel (x86_64): cpp4r_0.3.0.tgz

Linking:

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