Skip to content

future

1.80.0Package record

Unified Parallel and Distributed Processing in R for Everyone

320packages dependsuggested by 246
4.5Mdownloads / year
–test coverage
13/13flavors OK

Overview

About

The purpose of this package is to provide a lightweight and unified Future API for sequential and parallel processing of R expression via futures. The simplest way to evaluate an expression in parallel is to use `x %<-% { expression }` with `plan(multisession)`. This package implements sequential, multicore, multisession, and cluster futures. With these, R expressions can be evaluated on the local machine, in parallel a set of local machines, or distributed on a mix of local and remote machines. Extensions to this package implement additional backends for processing futures via compute cluster schedulers, etc. Because of its unified API, there is no need to modify any code in order switch from sequential on the local machine to, say, distributed processing on a remote compute cluster. Another strength of this package is that global variables and functions are automatically identified and exported as needed, making it straightforward to tweak existing code to make use of futures.

Changes in 1.80.0

Significant Changes

  • Memory use on parallel workers has gone down significantly in some cases. A side effect is also significantly faster processing in those cases. This improvement has an immediate effect on several **future.apply** functions: future_lapply(), future_sapply(), future_apply(), future_tapply(), future_by(), future_Filter(), future_eapply(), future_mapply(), and future_Map().

Bug Fixes

  • cluster and multisession futures could leave a stray, unclosed worker connection behind if a worker was relaunched. This would eventually result in warnings on "closing unused connection" when the garbage collector ran.
Show all changes in 1.80.0Hide the rest of the changes in 1.80.0
  • Explicitly specifying globals as a character vector via attributes add or ignore would be ignored silently, e.g. globals = structure(c("a", "b"), add = "c").
  • A future that uses a global ... together with a global ...future.FUN() function, which is what **future.apply** uses, could fail with "cycles in parent chains are not allowed". In R (< 4.5.0), it ended up in an infinite loop. This bug was introduced in **future** 1.40.0 (2025-04-10).
  • A sequential future that uses a global ... together with a global ...future.FUN() function, which is what **future.apply** uses, could permanently change the parent of the function's environment, if that environment inherits from the global environment. This bug was introduced in **future** 1.40.0 (2025-04-10).
  • makeClusterFuture(globals = ...) would result in an future evaluation error.
  • Futures failed on R (< 4.0.0). This bug was introduced in **future** 1.68.0 (2025-11-17).
  • Globals identified automatically (the default) could carry extra, unneeded load that was exported to the parallel workers. This could result in significant overhead in both total memory use and total processing time.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 11.2 min · r-release-macos-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-05-08
  • WARNING12 OK, 1 WARNING2026-05-07
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 1.80.0
README· In the repository, left out of the releaseVignettesYes · 10 · dynamicNEWSYes · 100% structured · mentions 1.80.0Citation fileYes · cites a publicationWebsiteYes · pkgdown
Cites an R Journal article
Help pages
44 (26 internal)
Examples that run
88%15 run in a plain check (2 of them under a condition) · 2 only when donttest examples are enabled (R CMD check --as-cran)
Exported functions with examples
48%
Documented parameters
90%
Return-value docs
94%
Help pages citing references
2%

Also includes 2 demo scripts (run with demo())

Downloads

4.5M
CRAN downloads in the past year
Rank #162 · ~12.5K/day · ~379.1K/mo
Daily download trend is not available in this view yet.
358K30 days
1.1M90 days
4.5M1 year
Compare downloads with other packages →
Also on110.8K r2u236 autocran483.5K conda_forge81.7K bioconda18.3K c2d4u

Repository

1,015Stars
94Forks
78Open issues
3Open PRs
0Releases
4,807Commits
18Commit identities
rcranparallel-processingparallel-computingdistributed-computinghpc-clustershpcpromises
License file reads as Apache-2.0 · 4,807 commits · Last activity 2026-10-18 · 0% stars, 30d · Discussions: 155 posts
Responsiveness
How these are sampled
PRs merged (all time)
63%
Median days to close, 50 most recently updated closed issues
82
Median days to close, 50 most recently updated closed PRs
1

Stars over time

2025-10-11 · 9912026-10-06 · 1,015
PracticesBeta

12 development-tooling and community-health practices detected across 8 families in the upstream repository

Checks run against github.com/futureverse/future on 2026-10-11.

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-11

pkgdown site last built 2026-10-11, before release 1.80.0 (2026-10-16)

Coverage (1)
Coverage reporting
Show all practicesHide 4 practices
Reproducibility and dev environment (1)
Makefile
CRAN release process (1)
revdep/
Research and citation (1)
CITATION.cff
Automation and maintenance (1)
pre-commit
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen on or before 2026-09-03
    Commits: at least 1 crediting it in the message
Models named in its commits
  • Claude Opus 51 commit · Sep 2026
Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
7 external dependencies (excludes base and recommended)

Installing future adds 4 packages (2 with compiled code, 690 KB of source tarballs). Heaviest: parallelly 343 KB, digest 231 KB, globals 61 KB.

Depends (1)
R >= 3.2.0
Imports (7)
LinkingTo (0)
none
Suggests (4)
Enhances (0)
none

People & History

People (1)
Author, Maintainer since 0.6.0 (2015), Copyright holder
Releases (66)

Pick two releases to compare their code metrics.

  • 1.80.0Latest
    record
    2026-09-24 · current release · diff ↗
  • 1.76.0
    record
    2026-09-24 · diff ↗
  • 1.75.0
    record
    2026-07-20 · diff ↗
  • R
    R 4.6.0 released · 2026-04-24
  • 1.70.0
    record
    2026-03-14 · diff ↗
  • 1.69.0
    record
    2026-01-16 · diff ↗ ·
    removed 1 export
    as.cluster
  • 1.68.0
    record
    2025-11-17 · diff ↗
  • 1.67.0
    record
    2025-07-29 · diff ↗
  • 1.58.0
    record
    2025-06-05 · diff ↗ ·
    added 3 exports
    DefaultDeviceMisuseFutureCondition, DefaultDeviceMisuseFutureError, DefaultDeviceMisuseFutureWarning
  • 1.49.0
    record
    2025-05-09 · diff ↗ ·
    removed 1 export
    interrupt
    added 3 exports
    FutureCanceledError, FutureLaunchError, cancel
  • R
    R 4.5.0 released · 2025-04-11
  • 1.40.0
    record
    2025-04-10 · diff ↗ ·
    removed 11 exports
    ClusterFuture, ConstantFuture, GlobalEnvFutureCondition, GlobalEnvFutureError, GlobalEnvFutureWarning, MulticoreFuture, MultisessionFuture, SequentialFuture, autoStopCluster, makeClusterMPI, makeNodePSOCK
    added 25 exports
    ClusterFutureBackend, ConnectionMisuseFutureCondition, ConnectionMisuseFutureError, ConnectionMisuseFutureWarning, DeviceMisuseFutureCondition, DeviceMisuseFutureError, DeviceMisuseFutureWarning, FutureBackend, FutureDroppedError, FutureInterruptError, GlobalEnvMisuseFutureCondition, GlobalEnvMisuseFutureError, GlobalEnvMisuseFutureWarning, MulticoreFutureBackend, MultiprocessFutureBackend, MultisessionFutureBackend, SequentialFutureBackend, interrupt, interruptFuture, launchFuture, listFutures, minifuture, reset, stopWorkers, validateFutureGlobals
  • 1.34.0
    record
    2024-07-29 · diff ↗
  • R
    R 4.4.0 released · 2024-04-24
  • 1.33.2
    record
    2024-03-26 · diff ↗
  • 1.33.1
    record
    2023-12-22 · diff ↗
Show 62 earlier eventsHide 62 earlier events
  • 1.33.0
    record
    2023-07-01 · diff ↗ ·
    removed 1 export
    multiprocess
  • R
    R 4.3.0 released · 2023-04-21
  • 1.32.0
    record
    2023-03-07 · diff ↗ ·
    added 4 exports
    FutureJournalCondition, GlobalEnvFutureCondition, GlobalEnvFutureError, GlobalEnvFutureWarning
  • 1.31.0
    record
    2023-02-01 · diff ↗ ·
    removed 3 exports
    TransparentFuture, remote, transparent
  • 1.30.0
    record
    2022-12-16 · diff ↗
  • 1.29.0
    record
    2022-11-06 · diff ↗ ·
    removed 1 export
    values
  • 1.28.0
    record
    2022-09-02 · diff ↗
  • 1.27.0
    record
    2022-07-22 · diff ↗
  • 1.26.1
    record
    2022-05-27 · diff ↗
  • 1.25.0
    record
    2022-04-24 · diff ↗
  • R
    R 4.2.0 released · 2022-04-22
  • 1.24.0
    record
    2022-02-19 · diff ↗
  • 1.23.0
    record
    2021-10-31 · diff ↗
  • 1.22.1
    record
    2021-08-25 · diff ↗ ·
    added 2 exports
    TransparentFuture, futureSessionInfo
  • R
    R 4.1.0 released · 2021-05-18
  • 1.21.0
    record
    2020-12-10 · diff ↗ ·
    added 4 exports
    RngFutureCondition, RngFutureError, RngFutureWarning, nbrOfFreeWorkers
  • 1.20.1
    record
    2020-11-03 · diff ↗ ·
    removed 1 export
    find_rshcmd
  • 1.19.1
    record
    2020-09-22 · diff ↗
  • 1.18.0
    record
    2020-07-09 · diff ↗
  • R
    R 4.0.0 released · 2020-04-24
  • 1.17.0
    record
    2020-04-18 · diff ↗
  • 1.16.0
    record
    2020-01-16 · diff ↗
  • 1.15.1
    record
    2019-11-25 · diff ↗ ·
    added 1 export
    resetWorkers
  • 1.15.0
    record
    2019-11-08 · diff ↗
  • 1.14.0
    record
    2019-07-02 · diff ↗
  • 1.13.0
    record
    2019-05-09 · diff ↗
  • R
    R 3.6.0 released · 2019-04-26
  • 1.12.0
    record
    2019-03-08 · diff ↗
  • 1.11.1.1
    record
    2019-01-27 · diff ↗
  • 1.11.0
    record
    2019-01-22 · diff ↗ ·
    removed 1 export
    future_lapply
    added 2 exports
    %conditions%, find_rshcmd
  • 1.10.0
    record
    2018-10-17 · diff ↗ ·
    added 2 exports
    autoStopCluster, makeClusterMPI
  • 1.9.0
    record
    2018-07-23 · diff ↗ ·
    removed 5 exports
    FutureEvaluationCondition, FutureEvaluationError, FutureEvaluationMessage, FutureEvaluationWarning, getOutput
    added 1 export
    %stdout%
  • 1.8.1
    record
    2018-05-03 · diff ↗ ·
    added 1 export
    UnexpectedFutureResultError
  • R
    R 3.5.0 released · 2018-04-23
  • 1.8.0
    record
    2018-04-08 · diff ↗ ·
    added 2 exports
    FutureResult, result
  • 1.7.0
    record
    2018-02-11 · diff ↗ ·
    removed 4 exports
    EagerFuture, LazyFuture, eager, lazy
    added 8 exports
    %packages%, FutureCondition, FutureEvaluationCondition, FutureEvaluationError, FutureEvaluationMessage, FutureEvaluationWarning, FutureMessage, FutureWarning
  • 1.6.2
    record
    2017-10-17 · diff ↗
  • 1.6.1
    record
    2017-09-09 · diff ↗ ·
    added 1 export
    getGlobalsAndPackages
  • 1.6.0
    record
    2017-08-13 · diff ↗ ·
    removed 2 exports
    %<=%, %=>%
  • 1.5.0
    record
    2017-05-26 · diff ↗ ·
    removed 1 export
    mandelbrotTiles
    added 1 export
    mandelbrot_tiles
  • R
    R 3.4.0 released · 2017-04-21
  • 1.4.0
    record
    2017-03-13 · diff ↗ ·
    added 2 exports
    FutureGlobals, as.FutureGlobals
  • 1.3.0
    record
    2017-02-19 · diff ↗ ·
    added 6 exports
    %lazy%, %seed%, SequentialFuture, availableWorkers, future_lapply, sequential
  • 1.2.0
    record
    2016-11-12 · diff ↗ ·
    added 4 exports
    as.cluster, makeClusterPSOCK, makeNodePSOCK, sessionDetails
  • 1.1.1
    record
    2016-10-11 · diff ↗
  • 1.1.0
    record
    2016-10-10 · diff ↗ ·
    added 3 exports
    %globals%, %label%, run
  • 1.0.1
    record
    2016-07-04 · diff ↗
  • 1.0.0
    record
    2016-06-24 · diff ↗ ·
    added 2 exports
    mandelbrot, mandelbrotTiles
  • 0.15.0
    record
    2016-06-14 · diff ↗ ·
    added 1 export
    remote
  • 0.14.0
    record
    2016-05-17 · diff ↗ ·
    added 3 exports
    FutureError, getOutput, nbrOfWorkers
  • R
    R 3.3.0 released · 2016-05-03
  • 0.13.0
    record
    2016-04-14 · diff ↗ ·
    removed 1 export
    injectNextStrategy
    added 8 exports
    %->%, %<-%, %tweak%, ConstantFuture, backtrace, getExpression, transparent, tweak
  • 0.12.0
    record
    2016-02-24 · diff ↗ ·
    added 3 exports
    MultiprocessFuture, UniprocessFuture, multiprocess
  • 0.11.0
    record
    2016-01-20 · diff ↗ ·
    added 6 exports
    ClusterFuture, MultisessionFuture, cluster, futureCall, injectNextStrategy, multisession
  • 0.10.0
    record
    2015-12-31 · diff ↗ ·
    added 3 exports
    futures, resolve, values
  • 0.9.0
    record
    2015-12-12 · diff ↗
  • 0.8.2
    record
    2015-10-14 · diff ↗
  • 0.8.1
    record
    2015-10-05 · diff ↗
  • 0.8.0
    record
    2015-09-07 · diff ↗
  • 0.7.0
    record
    2015-07-14 · diff ↗ ·
    added 1 export
    availableCores
  • 0.6.0
    record
    2015-06-19
  • R
    R 3.2.0 released · 2015-04-16

Package metadata

First published
2015-06-19
Total releases
66 / 11 yrs
License
Apache License (>= 2) · relicensed from LGPL (>= 2.1) in 1.75.0
Minimum R
≥ 3.2.0
Download size
477 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("future")

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

It points to 10.32614/rj-2021-048.

The repository also keeps a CITATION.cff.

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 future version 1.80.0 [Data set]. HJJB, LLC. Data release v2026-10-18. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-18, 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