Loads additional packages as part of the fastverse. By default only for the session, but extensions can be saved up to reinstallation/updating of the fastverse package.

  topics = NULL,
  install = FALSE,
  permanent = FALSE,
  check.conflicts = !isTRUE(getOption("fastverse.quiet"))



comma-separated package names, quoted or unquoted, or vectors of package names.


integer or character. Short-keys to attach groups of related and packages suggested as extensions to the fastverse (not case sensitive if character). Unavailable packages are skipped unless install = TRUE.

  1. "TS": Time Series. Attaches xts, zoo and roll.

  2. "DT": Dates and Times. Attaches lubridate, anytime, fasttime, nanotime, clock, and timechange.

  3. "ST": Strings. Attaches stringr, stringi, snakecase, stringfish and stringdist.

  4. "SC": Statistics and Computing. Attaches Rfast, Rfast2, parallelDist and coop.

  5. "SP": Spatial. Attaches sf, stars and terra.

  6. "VI": Visualization. Attaches dygraphs, ggplot2, scales, lattice and grid.

  7. "TV": Tidyverse-Like. Attaches tidytable, tidyfast, tidyfst, tidyft and maditr.

  8. "IO": Input-Output. Attaches qs and arrow.


logical. Install packages not available?


logical. Should packages be saved and included when library(fastverse) is called next time? Implemented via a config file saved to the package directory. The file will be removed if the fastverse is reinstalled, and can be removed without reinstallation using fastverse_reset. Packages can be removed from the config file using fastverse_detach(..., permanent = TRUE).


logical. Should conflicts between extension packages and attached packages be checked?


fastverse_extend returns NULL invisibly.


The fastverse can be extended using a free choice of packages, packages listed under topics, or a combination of both. If install = FALSE, only packages among the topics groups that are available are considered, others are disregarded.

When the fastverse is extended calling fastverse_extend(...), the packages that are not attached are attached, but conflicts are checked for all specified packages. If permanent = FALSE, an options("fastverse.extend") is set which stores these extension packages, regardless of whether they were already attached or not. When calling fastverse_packages, fastverse_deps, fastverse_conflicts, fastverse_update, fastverse_sitrep or fastverse_detach, these packages are included as part of the fastverse. This is also the case if permanent = TRUE, with the only difference that instead of populating the option, a file is saved to the package directory such that the packages are also loaded (as part of the core fastverse) when calling library(fastverse) in the next session. To extend the fastverse for the current session when it is not yet loaded, users can also set options(fastverse.extend = c(...)), where c(...) is a character vector of package names, before calling library(fastverse).

See also


# \donttest{ ex <- getOption("fastverse.extend") fastverse_extend(xts, stringi)
#> -- Attaching extension packages ----------------------------- fastverse 0.2.1 --
#> v xts 0.12.1 v stringi 1.5.3
#> -- Conflicts ------------------------------------------ fastverse_conflicts() -- #> x xts::first() masks data.table::first() #> x xts::last() masks data.table::last()
fastverse_extend(fasttime, topics = "VI")
#> -- Attaching extension packages ----------------------------- fastverse 0.2.1 --
#> v fasttime 1.0.2 v scales 1.1.1 #> v dygraphs v lattice 0.20.44 #> v ggplot2 3.3.5 v grid 4.1.0
# Undoing this again fastverse_detach(setdiff(getOption("fastverse.extend"), ex), session = TRUE) rm(ex) # }