Skip to content

future.apply

1.21.0Package record

Apply Function to Elements in Parallel using Futures

213packages dependsuggested by 116
3.3Mdownloads / year
–test coverage
11/13flavors OK

Overview

About

Implementations of apply(), by(), eapply(), lapply(), Map(), .mapply(), mapply(), replicate(), sapply(), tapply(), and vapply() that can be resolved using any future-supported backend, e.g. parallel on the local machine or distributed on a compute cluster. These future_*apply() functions come with the same pros and cons as the corresponding base-R *apply() functions but with the additional feature of being able to be processed via the future framework doi:10.32614/RJ-2021-048.

Changes in 1.21.0

Significant Changes

  • Memory use on parallel workers has gone down significantly in some cases for functions future_lapply(), future_sapply(), future_apply(), future_tapply(), future_by(), future_Filter(), future_eapply(), future_mapply(), and future_Map(). An outcome of this is that the performance also improves.
  • Separately from the above, the memory use of future_vapply() has gone down significantly, which also resulted in improved overall performance.

New Features

  • If argument future.label of future_lapply() and friends has no format specifier, such as %d, then -%d is appended, e.g. future.label = "my-label" gives future labels "my-label-1", "my-label-2", and so on. Previously, such labels produced a warning 'one argument not used by format'.
Show all changes in 1.21.0Hide the rest of the changes in 1.21.0
  • future_lapply() and friends now signal "Caught ... Canceling all iterations ..." as a message instead of a warning.

Bug Fixes

  • future_lapply(), future_sapply(), future_vapply(), future_tapply(), future_eapply(), future_by(), and future_Filter() ignored ... %seed% seed. This led to random numbers depending on the future backend, the number of workers, and the chunk size. Per-element seeds were still generated, but silently dropped. Note that future_apply(), future_mapply(), future_.mapply(), and future_Map() were not affected.
  • future_vapply() on empty input failed with an error if FUN.VALUE had length greater than one.
  • future_vapply() did not always return an object of the same type as FUN.VALUE like vapply() does.
  • future_vapply() with FUN.VALUE as a list would recursively flatten the results into an atomic vector instead of returning a list.
  • future_lapply() and friends with %seed%, %packages%, ... would leak those options to the next call, if there were zero elements to process.
  • future_lapply() and friends with a future.chunk.size less than one would launch futures that processed no elements. Now such chunk sizes result in one element per future.
  • future_apply() with argument future.globals as a list could produce a false error on globals exceeding the maximum size allowed.
  • future_.mapply() could fail with "formal argument matched by multiple actual arguments" if dots had names also used by future_mapply(), e.g. "MoreArgs".
  • future_kernapply() ignored future.* arguments, and any additional arguments stats::kernapply() might take.

Miscellaneous

  • Package **stats** is now declared as an imported package instead of just a suggested package.

From NEWS.md in the release

Install

Health

CRAN checks
2NOTE11OK
Check messages
NOTEdependencies in R coder-devel-linux-x86_64-debian-clang, r-devel-windows-x86_64

r-devel-linux-x86_64-debian-clang

Base package in Suggests/Enhances imported in NAMESPACE:
  ‘stats’

r-devel-windows-x86_64

Base package in Suggests/Enhances imported in NAMESPACE:
  'stats'

CRAN check page ↗

Slowest check: 5.7 min · r-release-macos-x86_64
Status changes
  • NOTE11 OK, 2 NOTE2026-09-12
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 1.21.0
README· In the repository, left out of the releaseVignettesYes · 1 · staticNEWSYes · 100% structured · mentions 1.21.0Citation fileYes · cites a publicationWebsiteYes · pkgdown
Cites an R Journal article
Help pages
9 (2 internal)includes a package overview page
Examples that run
83%5 run in a plain check · 1 never run
Exported functions with examples
100%
Documented parameters
100%
Return-value docs
100%
Help pages citing references
0%

Downloads

3.3M
CRAN downloads in the past year
Rank #215 · ~9K/day · ~273.1K/mo
Daily download trend is not available in this view yet.
230K30 days
683.1K90 days
3.3M1 year
Compare downloads with other packages →
Also on97.3K r2u221 autocran463.7K conda_forge17.8K c2d4u

Repository

219Stars
20Forks
20Open issues
1Open PRs
0Releases
695Commits
6Commit identities
rpackagefutureparallelparallel-computingparallel-processingdistributed-computingasynchronous
695 commits · Last activity 2026-10-16 · +0.5% stars, 30d
Responsiveness
How these are sampled
PRs merged (all time)
67%
Median days to close, 50 most recently updated closed issues
58
Median days to close, 50 most recently updated closed PRs
2

Stars over time

2025-08-22 · 2162026-10-06 · 219
PracticesBeta

11 development-tooling and community-health practices detected across 7 families in the upstream repository

Checks run against github.com/futureverse/future.apply 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-08

pkgdown site last built 2026-10-08, before release 1.21.0 (2026-10-16)

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

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-09-23
    Commits: at least 1 crediting it in the message
Models named in its commits
  • Claude Opus 5.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
5 external dependencies (excludes base and recommended)

Installing future.apply 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 >= 3.2.0future
Imports (4)
globalsparallelstatsutils
LinkingTo (0)
none
Suggests (5)
Enhances (0)
none

People & History

People (2)
Author, Maintainer since 0.1.0 (2018), Copyright holder
Copyright holder, Contributor · added in 0.2.0
Releases (23)

Pick two releases to compare their code metrics.

  • 1.21.0Latest
    record
    2026-10-16 · current release · diff ↗ ·
    listed once in CRAN's queue
    Seen in one reading of CRAN's incoming queue, at 2026-10-16 12:54 UTC, so it stayed less than the time between readings.
  • R
    R 4.6.0 released · 2026-04-24
  • 1.20.2
    record
    2026-02-20 · diff ↗
  • 1.20.1
    record
    2025-12-09 · diff ↗
  • 1.20.0
    record
    2025-06-06 · diff ↗ ·
    added 2 exports
    future_Filter, future_kernapply
  • R
    R 4.5.0 released · 2025-04-11
  • 1.11.3
    record
    2024-10-27 · diff ↗
  • R
    R 4.4.0 released · 2024-04-24
  • 1.11.2
    record
    2024-03-28 · diff ↗
  • 1.11.1
    record
    2023-12-21 · diff ↗
  • 1.11.0
    record
    2023-05-21 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • 1.10.0
    record
    2022-11-05 · diff ↗
  • 1.9.1
    record
    2022-09-07 · diff ↗
  • 1.9.0
    record
    2022-04-26 · diff ↗
  • R
    R 4.2.0 released · 2022-04-22
Show 17 earlier eventsHide 17 earlier events
  • 1.8.1
    record
    2021-08-10 · diff ↗
  • R
    R 4.1.0 released · 2021-05-18
  • 1.7.0
    record
    2021-01-04 · diff ↗
  • 1.6.0
    record
    2020-07-01 · diff ↗
  • R
    R 4.0.0 released · 2020-04-24
  • 1.5.0
    record
    2020-04-17 · diff ↗ ·
    added 1 export
    future_.mapply
  • 1.4.0
    record
    2020-01-07 · diff ↗
  • 1.3.0
    record
    2019-06-18 · diff ↗
  • R
    R 3.6.0 released · 2019-04-26
  • 1.2.0
    record
    2019-03-07 · diff ↗ ·
    added 1 export
    future_by
  • 1.1.0
    record
    2019-01-17 · diff ↗
  • 1.0.1
    record
    2018-08-27 · diff ↗
  • 1.0.0
    record
    2018-06-20 · diff ↗ ·
    added 3 exports
    future_Map, future_apply, future_mapply
  • 0.2.0
    record
    2018-05-01 · diff ↗ ·
    added 4 exports
    future_eapply, future_replicate, future_tapply, future_vapply
  • R
    R 3.5.0 released · 2018-04-23
  • 0.1.0
    record
    2018-01-15
  • R
    R 3.4.0 released · 2017-04-21
Across CRAN, the median accepted release of the past year spent 19 hours in the queue, 90% under 11 days.How queue time is measured

Package metadata

First published
2018-01-15
Total releases
23 / 8 yrs
License
GPL (>= 2) OSI · relicensed from LGPL (>= 2.1) in 1.0.0
Minimum R
≥ 3.2.0
Download size
80 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("future.apply")

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.apply version 1.21.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