Brief Overview

A fair number of recent projects involve the Rcpp package for seamless R and C++ integration, and several related packages.

The Rcpp website has more about Rcpp, and the Rcpp Gallery presents a number of worked examples.

RcppArmadillo, RcppEigen and RcppGSL extend, respectively, to the Armadillo, Eigen and GSL frameworks. Most of these packages were at least initially authored jointly by the Rcpp Core team.

Several few smaller and sometimes still incomplete packages use Rcpp to extend to other interesting package or libraries.

A few examples are RcppAnnoy (fast Nearest Neighbours classifier), RcppAPT (interfacing APT on Debian/Ubuntu/…), RcppBDT (Boost DateTime access), RcppCCTZ (time-zone library), RcppCNPy (read/write NumPy files), RcppDate (modern date library), RcppDE (differential evolution optmizations), RcppMagicEnum (enum support), RcppFastAD (fast automatic differentiation), RcppFarmHash (hasher used by BigQuery), RcppFastFloat (fast character conversion), RcppGetconf (system configuration access), RcppInt64 (int64 variables), RcppKalman (Kalman Filter), RcppMsgPack (Date serialization / transfer), RcppNLoptExample (NLopt via Rcpp), RcppRedis (faster Redis read/write access), RcppSimdJson (fastest JSON parser) RcppSMC (Sequential Monte Carlo / Particle Filter), RcppSpdlog (modern logging library), RcppStreams (Event Stream Processing), RcppTOML (TOML Configuration File Reader), RcppXts (xts access at C level), and RcppZiggurat (faster Normal RNGs).

Applications include anytime for easier time and date conversion, nanotime for nanosecond resolution (using RcppCCTZ and RcppDate), and qlcal for QuantLib Calendaring, and dtts building on nanotime (and data.table).

Last but not least RInside uses Rcpp to embed R in a very easy-to-use C++ class for deployment in other programs.

Also, a long list of (all) packages (on CRAN) using Rcpp is available.

Other Meta Projects

I continue to maintain r-ci for portable continuous integration across different providers.

The r2u projects offers 22,000 CRAN binaries (plus 400 BioC ones) for Ubuntu LTS releases. Fast. Easy. Reliable. Pick All Three.

Other Projects

littler lets R be used in commad-line scripting, pipes and more.

binb, linl, pinp, and tint are all using Markdown to produce pdf (nice than Beamer) slides, letters, (PNAS-alike) papers or (Tufte) handouts (pdf and html.

Rblpapi connects R to Bloomberg API (provided you have Bloomberg).

RQuantLib is another relatively large project connecting R to QuantLib.

BH provides Boost C++ headers for use by R; AsioHeaders does the same for Asio.

digest provides hash sums of R objects.

inline makes it easy to inline C, C++, or Fortran code alongside R.

RPushbullet interfaces the PushBullet notification service.

RApiSerialize provides the C-level API for R object serialization; RApiDatetime does the same for some date/time functions.

pkgKitten makes creating and writing R packages a breeze.

drat supports lightweight package repositories.

rfoaas interfaces the excellent FOAAS service.

random provides true (hardware) RNG draws.

rmsfact and gaussfacts offer some (lighthearted) quotes in the fortune() tradition.

RDieHarder tests RNGs.

RPostgreSQL connects R to Postgres (now maintained by Tomoaki Nishiyama).

spdl provides a consistent R and C++ wrapper for logging with spdlog.

td accesses twelvedata APIs over REST.

crc32c provides a hardware-accelerated crc32c implementation with a software fallback.

tinythemes provides a lightweight repackaging of ggplot2 themes.

ciw offers a quick and concise view of the ‘incoming’ directory at CRAN.

ulid provides universally unique lexicographically-sortable identifiers.

Older projects include the Perl-based BeanCounter (and SMTM) as well as Finance::YahooQuote.

Reverse Chronological List

In (approximately) reverse chronological order:

RcppMagicEnum
Interface to magic_enum header library for enum support [Project page] [CRAN] [GitHub].
ulid
Universally Unique Lexicographically-Sortable Identifiers [Project page] [CRAN] [GitHub].
ciw
CRAN Incoming Watcher [Project page] [CRAN] [GitHub].
tinythemes
Lightweight repackahing of ggplot2 themes [Project page] [CRAN] [GitHub].
RcppInt64
RcppInt64: Bindings for Passing integer64 To And From C++ [Project page] [CRAN] [GitHub].
crc32c
crc32c: R Bindings for the CRC32C Library++ [Project page] [CRAN] [GitHub].
RcppFastAD
Interface to FastAD header library for automatic differentiation [Project page] [CRAN] [GitHub].
spdl
Consistent R and C++ wrapper for logging with spdlog [Project page] [CRAN] [GitHub].
dtts
Time-series functionality based on nanotime and data.table [Project page] [CRAN] [GitHub].
qlcal
QuantLib Calendering for R [Project page] [CRAN] [GitHub].
RcppFarmHash
Rcpp Bindings for the FarmHash Family of Hash Functions by Google [Project page] [CRAN] [GitHub].
td
Access to twelvedata [Project page] [CRAN] [GitHub].
RcppFastFloat
Rcpp Bindings for the fastfloat Header Library [Project page] [CRAN] [GitHub].
tidyCpp
header-files with for tidier C++ wrapper around the C API for R [Project page] [CRAN] [GitHub].
RcppSpdlog
modern C++ logging header library for R [Project page] [CRAN] [GitHub].
chshli
check shared libraries [Project page] [GitHub].
RcppDate
date C++ header library for R [Project page] [CRAN] [GitHub].
RcppSimdJson
Rcpp Bindings for the simdjson Header Library [Project page] [CRAN] [GitHub].
corels
R Bindings for the ‘Certifiably Optimal RulE ListS (Corels)’ Learner [Project page] [CRAN] [GitHub].
minm
minm is not meta: One way to get several RMarkdown-using packages [Project page] [GitHub].
ttdo
Extend tinytest with diffobj [Project page] [CRAN] [GitHub].
dang
A collection of utility functions for R [Project page] [CRAN] [GitHub].
RcppNloptExample
Rcpp Example for accessing NLopt [Project page] [CRAN] [GitHub].
binb
Binb Is Not Beamer: Spiffier Presentation Slides [Project page] [CRAN] [GitHub].
RcppClassicExamples
Examples using (deprecated) ‘RcppClassic’ to Interface R and C++ [CRAN] [GitHub].
prrd
Parallel Running [of] Reverse Depends [Project page] [CRAN] [GitHub].
linl
Linl Is Not Letter: Markdown-based LaTeX Letter Template [Project page] [CRAN] [GitHub].
pinp
Pinp Is Not PNAS: Two-Column PDF Template [Project page] [CRAN] [GitHub].
rcppquantuccia
Rcpp bindings for Quantuccia [Project page] [CRAN] [GitHub].
nanotime
Nanosecond Time Resolution for R [Project page] [CRAN] [GitHub].
tint
Tint Is Not Tufte [Project page] [CRAN] [GitHub].
gettz
Get System Timezone [Project page] [CRAN [GitHub].
anytime
Convert any (sensible) input into Date or Time, without a format [Project page] [CRAN] [GitHub].
gaussfacts
The Greatest Mathematician since Antiquity [Project page] [CRAN] [GitHub]
rmsfact
Amazing Random Facts About the World’s Greatest Hacker [Project Page] [CRAN] [GitHub]
RcppGetconf
Rcpp read access to POSIX system configuration [Project page] [CRAN] [GitHub].
RcppMsgPack
MsgPack C++ Header Files and Interface Functions for R [Project page] [CRAN] [GitHub]
asioheaders
Asio Headers for R [Project page] [CRAN] [GitHub].
RcppCCTZ
Rcpp interface for R to the CCTZ library [Project page] [CRAN] [GitHub].
Rblpapi
Rcpp interface for R to Bloomberg (provided you have Bloomberg) [Project page] [CRAN] [GitHub].
RApiDatetime
Access to the C-level API for R date/time functions. [Project page] [CRAN] [GitHub].
RcppTOML
Rcpp interface for R to TOML configuration files [Project page] [CRAN] [GitHub].
RcppAPT
Rcpp interface for R to the APT Packaging Tool on Debian and derivatives [Project page] [CRAN] [GitHub].
drat
Drat R Archive Template to easily create lightweight repositories [Project page] [CRAN] [GitHub].
RcppStreams
R interface to the Streamulus library for Event Stream Processing. [Project page] [CRAN] [GitHub].
RcppAnnoy
R interface to the Annoy approximate nearest neighbour classifier. [Project page] [CRAN] [GitHub].
pkgKitten
Easier creation of R packages that purr. [Project page] [CRAN] [GitHub] [Debian].
RPushBullet
R interface to the excellent PushBullet notifications API and service. [Project page] [CRAN] [GitHub].
RApiSerialize
Access to the C-level API for R object serialization. [Project page] [CRAN] [GitHub].
rfoaas
R interface to the RESTful FOAAS service. [Project page] [CRAN] [GitHub].
RcppZiggurat
Faster Normal RNGs for R via the Ziggurat algorithm. [Project page] [CRAN] [GitHub].
RcppRedis
R interface to Redis. [Project page] [CRAN] [GitHub].
RcppKalman
RcppArmadillo port of the EKF/UKF toolbox for Matlab [Project page] [GitHub]
RcppCNPy
Provides R with read/write access to NumPy data files. [Project page] [CRAN] [GitHub].
BH
Access (large parts of) Boost templated C++ header files in your R packages. [Project page] [CRAN] [GitHub].
RcppXts
C++ level access to xts via Rcpp. [Project page] [CRAN] [GitHub].
RcppSMC
Using the SMTC (Sequential Monte Carlo Template) classes by Johansen from R via Rcpp. [Project page] [CRAN] [GitHub].
RcppDE
Provides a more compact alternate C++ implementation of DEoptim Differential Evolution optimisation package. [Project page] [CRAN] [GitHub].
RcppBDT
Interface from R to the Boost Date.Time library. [Project page] [CRAN] [GitHub].
RcppClassic
Provides the otherwise deprecated classic Rcpp API for packages that have not updated to the newer API. [Project page] [CRAN] [GitHub].
inline
Inline C, C++ and Fortran from R [Project page] [CRAN] [GitHub] [Debian].
RcppGSL
Bindings from R to the vector and matrix classes of the GNU GSL. [Project page] [CRAN] [GitHub].
RcppEigen
Bindings from R to the Eigen library. [Project page] [CRAN] [GitHub] [Debian].
RcppExamples
Regroups a number of examples for Rcpp. [Project page] [CRAN] [GitHub].
RcppArmadillo
Bindings from R to Conrad Sanderson’s excellent templated Armadillo library. [Project page] [CRAN] [GitHub] [Debian].
RInside
C++ classes to embed R in your C++ applications permitting you to eaily pass data and commands to R. [Project page] [CRAN] [GitHub].
RProtoBuf
Bindings for R to use Google Protocol Buffers for serialization and much more. [Project page] [CRAN] [GitHub].
Rcpp
Seamless R and C++ integration. [Project page] [CRAN] [GitHub] [Debian].
RDieHarder
R interface to the DieHarder tests for RNGs.
littler
A scripting front-end for R to write simple ‘shebang’-line scripts, or quick command-line expressions. [Project page] [CRAN] [GitHub] [Debian].
random
R package providing access to true (i.e. non-deterministic) random numbers from random.org. [Project page] [CRAN] [GitHub].
digest
R package to create hash digests of arbitrary R objects. [Project page] [CRAN] [GitHub] [Debian].
RQuantLib
A R interface with the QuantLib library. [Project page] [CRAN] [GitHub] [Debian].

Really Old Projects

RPostgreSQL
R interface to PostgreSQL, initially a part of GSoC 2008. Now maintained by Tomoaki Nishiyama. [CRAN] [GitHub].
Quantian
A directly bootable and self-configuring Linux system on a single dvd (project no longer active). [Project page]] [Web site].
BeanCounter
A stock portfolio performance toolkit: download, store (in SQL) and analyse stock market data. [Project page] [CPAN] [Google Code] [Debian].
SMTM
A highly configurable Perl/Tk stock ticker and performance display for stocks. [Project page] [CPAN] [Debian].
Finance::YahooQuote
A Perl module to download stock (and other) quotes from Yahoo! Finance, originally written by Dj Padzensky; mainted by me since 2002. [Project page] [CPAN] [Debian].
Mersenne Twister RNG for GNU Octave
C++ code for another RNG for GNU Octave using the Mersenne Twister MT19937. [Project page].
PostgreSQL for Octave
C++ code to interface the Postgres SQL database directly from GNU Octave. [Project page].

Other Pages

Debian
My Debian GNU/Linux page with information about the several dozen packages I maintain.
GitHub
My main GitHub page.

Initially created: Tue Jul 27 20:25:25 EDT 1999
Last modified: Tue Aug 20 16:54:18 CDT 2024