promises: Abstractions for Promise-Based Asynchronous Programming

Provides fundamental abstractions for doing asynchronous programming in R using promises. Asynchronous programming is useful for allowing a single R process to orchestrate multiple tasks in the background while also attending to something else. Semantics are similar to 'JavaScript' promises, but with a syntax that is idiomatic R.

Version: 1.3.0
Imports: fastmap (≥ 1.1.0), later, magrittr (≥ 1.5), R6, Rcpp, rlang, stats
LinkingTo: later, Rcpp
Suggests: future (≥ 1.21.0), knitr, purrr, rmarkdown, spelling, testthat, vembedr
Published: 2024-04-05
DOI: 10.32614/CRAN.package.promises
Author: Joe Cheng [aut, cre], Posit Software, PBC [cph, fnd]
Maintainer: Joe Cheng <joe at>
License: MIT + file LICENSE
NeedsCompilation: yes
Language: en-US
Materials: README NEWS
CRAN checks: promises results


Reference manual: promises.pdf
Vignettes: Why use promises?
An informal introduction to async programming
Working with promises in R
Launching tasks with future
Advanced future and promises usage
Using promises with Shiny
Combining promises
Case study: converting a Shiny app to async


Package source: promises_1.3.0.tar.gz
Windows binaries: r-devel:, r-release:, r-oldrel:
macOS binaries: r-release (arm64): promises_1.3.0.tgz, r-oldrel (arm64): promises_1.3.0.tgz, r-release (x86_64): promises_1.3.0.tgz, r-oldrel (x86_64): promises_1.3.0.tgz
Old sources: promises archive

Reverse dependencies:

Reverse imports: async, chromote, crew, DT, gwavr, httpuv, learnr, netShiny, plotly, plumber, plumbertableau, Prostar, shiny, shinydashboard, shinyTree, TKCat, TreeSearch, webdeveloper, webshot2
Reverse suggests: condformat, coro, dipsaus, googlePubsubR, GSVA, ipc, pagedown,
Reverse enhances: mirai, nanonext


Please use the canonical form to link to this page.