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.4.0
Depends: R (≥ 4.1.0)
Imports: fastmap (≥ 1.1.0), later, lifecycle, magrittr (≥ 1.5), otel (≥ 0.2.0), R6, rlang
Suggests: future (≥ 1.21.0), knitr, mirai, otelsdk (≥ 0.2.0), purrr, Rcpp, rmarkdown, spelling, testthat (≥ 3.0.0), vembedr
Published: 2025-10-22
DOI: 10.32614/CRAN.package.promises
Author: Joe Cheng [aut], Barret Schloerke ORCID iD [aut, cre], Winston Chang ORCID iD [aut], Charlie Gao ORCID iD [aut], Posit Software, PBC ROR ID [cph, fnd]
Maintainer: Barret Schloerke <barret at posit.co>
BugReports: https://github.com/rstudio/promises/issues
License: MIT + file LICENSE
URL: https://rstudio.github.io/promises/, https://github.com/rstudio/promises
NeedsCompilation: no
Language: en-US
Materials: README, NEWS
CRAN checks: promises results

Documentation:

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

Downloads:

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

Reverse dependencies:

Reverse imports: Certara.RsNLME.ModelExecutor, chromote, crew, DT, ellmer, FastRet, fiery, gwavr, httpuv, jobqueue, lavaangui, learnr, mcptools, netShiny, PacketLLM, plotly, plumber, plumber2, plumbertableau, Prostar, ravepipeline, reqres, routr, shiny, shinychat, shinydashboard, shinyTree, tall, tapLock, TKCat, TreeSearch, webdeveloper, webshot2
Reverse suggests: aifeducation, ambiorix, chatLLM, condformat, coro, dipsaus, googlePubsubR, GSVA, httr2, ipc, MVN, notionapi, pagedown, telegram.bot
Reverse enhances: mirai, nanonext

Linking:

Please use the canonical form https://CRAN.R-project.org/package=promises to link to this page.