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.

Imports: R6, Rcpp, later, rlang, stats, magrittr
LinkingTo: later, Rcpp
Suggests: testthat, future (≥ 1.21.0), fastmap (≥ 1.1.0), purrr, knitr, rmarkdown, vembedr, spelling
Published: 2021-02-11
Author: Joe Cheng [aut, cre], RStudio [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: 8. Case study
7. Combining promises
5. Advanced future and promises usage
4. Launching tasks with future
2. An informal introduction to async programming
1. Why use promises?
3. Working with promises in R
6. Using promises with Shiny


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

Reverse dependencies:

Reverse imports: async, chromote, dragon, DT, gwavr, httpuv, learnr, mirai.promises, netShiny, plotly, plumber, plumbertableau, Prostar, raveio, shiny, shinydashboard, shinyTree, skpr, TKCat, TreeSearch, webdeveloper, webshot2
Reverse suggests: condformat, coro, dipsaus, googlePubsubR, GSVA, ipc, microservices, pagedown,


Please use the canonical form to link to this page.