fastverse

R-CMD-check fastverse status badge CRAN status cran checks downloads per month downloads Conda Version Conda Downloads status

The fastverse is a suite of complementary high-performance packages for statistical computing and data manipulation in R. Developed independently by various people, fastverse packages jointly contribute to the objectives of:

The fastverse package is a meta-package providing utilities for easy installation, loading and management of these packages. It is an extensible framework that allows users to (permanently) add or remove packages to create a ‘verse’ of packages suiting their general needs, or even create separate ‘verses’ of their own.

fastverse packages are jointly attached with library(fastverse), and several functions starting with fastverse_ help manage dependencies, detect namespace conflicts, add/remove packages from the fastverse and update packages. The vignette provides a concise overview of the package.

Core Packages

The fastverse installs with 4 core packages1 (5 dependencies in total) which provide broad C/C++ based statistical and data manipulation functionality and have carefully managed APIs.

Installation

# Install the CRAN version
install.packages("fastverse")

# Install (Windows/Mac binaries) from R-universe
install.packages("fastverse", repos = "https://fastverse.r-universe.dev")

# Install from GitHub (requires compilation)
remotes::install_github("fastverse/fastverse")

Note that the GitHub/r-universe version is not a development version, development takes place in the ‘development’ branch.

Extending the fastverse

Users can, via the fastverse_entend() function, freely attach extension packages. Setting permanent = TRUE adds these packages to the core fastverse. Another option is adding a .fastverse config file with packages to the project directory. Separate verses can be created with fastverse_child(). See the vignette for details.

Suggested Extensions

High-performing packages for different data manipulation and statistical computing topics are suggested below. The total (recursive) dependency count is indicated for each package.


Time Series

Dates and Times

Strings

Statistics and Computing

Spatial

Visualization

Tidyverse-like Data Manipulation built on data.table

Data Manipulation in R Based on Faster Languages

R-like Data Manipulation in Faster Languages

Data Input-Output, Serialization, and Larger-Than-Memory Processing (IO)

Compiling R

R Bindings to Faster Languages

Parallelization, High-Performance Computing and Out-Of-Memory Data


Adding to this list

Please notify me of any other packages you think should be included here. Such packages should be well designed, top-performing, low-dependency, and, with few exceptions, provide own compiled code. Please note that the fastverse focuses on general purpose statistical computing and data manipulation, thus I won’t include fast packages to estimate specific kinds of models here (of which R also has a great many).


  1. Before v0.3.0 matrixStats and fst were part of the core fastverse, but were removed following a poll in November 2022 which established that more than 50% of users don’t use them actively.↩︎

  2. collapse functions can also handle irregular time series.↩︎