Skip to content

futurize

1.1.0Package record

Parallelize Common Functions via One Magic Function

3packages dependsuggested by 3
8.2Kdownloads / year
–test coverage
13/13flavors OK

Overview

About

The futurize() function doi:10.48550/arXiv.2601.17578 turns sequential map-reduce functions such as base::lapply(), purrr::map(), 'foreach::foreach() %do% { ... }' into concurrent alternatives, providing you with a simple, straightforward path to scalable parallel computing via the 'future' ecosystem doi:10.32614/RJ-2021-048. By combining this transpiler function with R's native pipe operator, you have a convenient way for speeding up iterative computations with minimal refactoring, e.g. 'lapply(xs, fcn) |> futurize()', 'purrr::map(xs, fcn) |> futurize()', and 'foreach::foreach(x = xs) %do% { fcn(x) } |> futurize()'. Other map-reduce packages that can be "futurized" are 'BiocParallel', 'plyr', 'crossmap', 'pbapply' packages. There is also support for a growing set of domain-specific packages on CRAN (e.g. 'boot', 'caret', 'DiceKriging', 'ez', 'fgsea', 'fwb', 'gamlss', 'glmmTMB', 'glmnet', 'kernelshap', 'lme4', 'metafor', 'mgcv', 'modelsummary', 'parameters', 'partykit', 'pls', 'pvclust', 'riskRegression', 'rugarch', 'sandwich', 'seriation', 'shapr', 'Sim.DiffProc', 'SimDesign', 'stars', 'strucchange', 'SuperLearner', 'terra', 'tm', 'TSP', and 'vegan') and on Bioconductor (e.g. 'DESeq2', 'GenomicAlignments', 'GSVA', 'Rsamtools', 'scater', 'scuttle', 'SingleCellExperiment', and 'sva').

Changes in 1.1.0

Significant Changes

  • Futurizing foreach(..., .options.future = list(...)) %do% { ... } is now an error, because %do% never supported such options in the first place. Instead, pass future options to futurize(), e.g. foreach(...) %do% { ... } |> futurize(seed = TRUE). Previously, such attempts were silently ignored.
  • Futurization of **GSVA** functions will stop working with **GSVA** (>= 2.7.0).

New Transpilers

  • Add support for domain-specific CRAN package **terra**, e.g. res <- tile_apply(r, function(x) x * 2) |> futurize().

New Features

Show all changes in 1.1.0Hide the rest of the changes in 1.1.0
  • futurize() now unwraps withCallingHandlers(), e.g. withCallingHandlers(lapply(xs, fcn), warning = ...) |> futurize().
  • Futurization of **lme4** functions now uses parallel = "future" available in **lme4** (>= 2.0-6). Older versions are still supported.

Bug Fixes

  • Option chunk_size was ignored when futurizing times(n) %do% { ... }.
  • Futurize option packages would drop packages that the transpiler declares as required on parallel workers.
  • Futurizing a call that specifies an argument that futurize() sets, e.g. bplapply(xs, fcn, BPPARAM = SerialParam()), or boot(..., parallel = "multicore"), gave an obscure error message. Now it gives an informative error.
  • Futurizing a call to an S3 or S4 generic function, whose first argument is a function call, e.g. influence(lmer(...)) |> futurize(), would evaluate that first argument twice; once to identify the method to be called, and once more when calling it. Now it is evaluated only once.
  • Attempts to futurize a generic function that dispatches to an unsupported S3 or S4 method gave an uninformative error message, e.g. summary(fit) |> futurize() and, with **BiocGenerics** attached, lapply(x, fcn) |> futurize() for an **S4Vectors** List. Now the error message names the method, its package, and the class dispatched on.
  • Attempts to futurize a function not part of a package gave an obscure error message suggestion to install a non-existing package.
  • Attempts to futurize an expression that is not a function call, e.g. { x } |> futurize(), gave an obscure error message.
  • All futurize options, e.g. seed, packages, and label, were ignored when futurizing **BiocParallel** functions.
  • Futurizing **plyr** functions with argument .paropts gave an obscure error. Now the .paropts options are passed on as-is, unless they specify .options.future, which gives an informative error suggesting to pass such options to futurize() instead.
  • Futurizing **plyr** functions produced a "No parallel backend registered" warning when using a single parallel worker, e.g. plan(sequential).

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 11.4 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-07-16
  • ERROR12 OK, 1 ERROR2026-07-13
  • OK13 OK2026-06-09
Show 6 earlier changesHide 6 earlier changes
  • ERROR12 OK, 1 ERROR2026-06-08
  • OK12 OK2026-04-25
  • NOTE13 OK, 1 NOTE2026-04-09
  • ERROR11 OK, 1 NOTE, 2 ERROR2026-04-01
  • NOTE13 OK, 1 NOTE2026-03-19
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 1.1.0
README· In the repository, left out of the releaseVignettesYes · 47 · staticNEWSYes · 100% structured · mentions 1.1.0Citation fileYes · cites a publicationWebsiteYes · pkgdown
Cites an R Journal article
Help pages
5 (1 internal)
Examples that run
100%3 run in a plain check
Exported functions with examples
100%
Documented parameters
94%
Return-value docs
100%
Help pages citing references
0%
Vignettes (47)
Show 37 moreHide 37 vignettes

Downloads

8.2K
CRAN downloads in the past year
Rank #3,752 · ~23/day · ~687/mo
Daily download trend is not available in this view yet.
1.3K30 days
2.6K90 days
8.2K1 year
Compare downloads with other packages →
Also on187 r2u7 autocran

Repository

32Stars
4Forks
4Open issues
0Open PRs
0Releases
648Commits
3Commit identities
futurefutureversepackageparallel-programmingrtranspiler
License file reads as Apache-2.0 · 648 commits · Last activity 2026-10-20 · +3.2% stars, 30d · Default branch at 1.1.0-9001, ahead of CRAN 1.1.0 (checked 2026-10-21)
Responsiveness
How these are sampled
PRs merged (all time)
67%
Median days to close, 50 most recently updated closed issues
12
Median days to close, 50 most recently updated closed PRs
0

Stars over time

2025-04-03 · 12026-10-13 · 32
PracticesBeta

10 development-tooling and community-health practices detected across 6 families in the upstream repository

Checks run against github.com/futureverse/futurize on 2026-10-21.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (3)
Code of conduct (inherited from futureverse)Contributing guide (inherited from futureverse)Issue templates
Docs source (2)
pkgdown

GitHub Pages site last deployed 2026-10-20

pkgdown site last built 2026-10-20

Coverage (1)
Coverage reporting
Show all practicesHide 2 practices
Reproducibility and dev environment (1)
Makefile
CRAN release process (1)
revdep/
How this is detected·Detection ruleset v4 (2026-10-20)

Dependencies

Declared dependencies
50 external dependencies (excludes base and recommended)

Installing futurize adds 5 packages (2 with compiled code, 1.1 MB of source tarballs). Heaviest: future 477 KB, parallelly 343 KB, digest 231 KB.

Depends (2)
R >= 4.1.0future
Imports (1)
utils
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
3direct
0indirect
Imports 3
Suggested by 3
Depends, Imports or LinkingTo, most downloaded first
Suggests, most downloaded first

People & History

People (1)
Author, Maintainer since 0.1.0 (2026), Copyright holder
Releases (5)

Pick two releases to compare their code metrics.

  • 1.1.0Latest
    record
    2026-10-19 · current release · diff ↗ ·
    listed once in CRAN's queue
    Seen in one reading of CRAN's incoming queue, at 2026-10-19 05:32 UTC, so it stayed less than the time between readings.
  • 1.0.0
    record
    2026-06-12 · diff ↗
  • R
    R 4.6.0 released · 2026-04-24
  • 0.3.0
    record
    2026-04-01 · diff ↗
  • 0.2.0
    record
    2026-03-18 · diff ↗
  • 0.1.0
    record
    2026-01-22
  • R
    R 4.5.0 released · 2025-04-11
Across CRAN, the median accepted release of the past year spent 23 hours in the queue, 90% under 11 days.How queue time is measured

Package metadata

First published
2026-01-22
Total releases
5 / 1 yrs
License
Apache License (>= 2) · relicensed from GPL (>= 3) in 1.0.0
Minimum R
≥ 4.1.0
Download size
881 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("futurize")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.48550/arxiv.2601.17578, 10.32614/rj-2021-048.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for futurize version 1.1.0 [Data set]. HJJB, LLC. Data release v2026-10-23. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy