Skip to content

promises

1.5.0Package record

Abstractions for Promise-Based Asynchronous Programming

46packages dependsuggested by 25
8.4Mdownloads / year
77.0%test coverage
13/13flavors OK

Overview

About

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.

Changes in 1.5.0

OpenTelemetry

promises now integrates with the otel package to provide observability and tracing for asynchronous operations.

  • local_otel_promise_domain() adds an OpenTelemetry span promise domain to the local scope. This is useful for {coro} operations where encapsulating the coro operations inside with_*() methods is not allowed. (#179)
  • with_otel_promise_domain() creates a promise domain that restores the currently active OpenTelemetry span from when a call to then() is executed. This enables proper tracing context across asynchronous operations. (#173)
  • with_otel_span() creates an OpenTelemetry span, executes the given expression within it, and ends the span when the expression completes. This function handles both synchronous and asynchronous (promise-based) operations. For promises, the span is automatically ended when the promise resolves or rejects. To access the OpenTelemetry span within your expression, use otel::get_current_span(). (#198)
Show all changes in 1.5.0Hide the rest of the changes in 1.5.0

New features

  • Promises are now simple classed environments rather than R6 classes. This reduces their creation overhead by up to 10x, thereby substantially improving performance. (#191)

Life cycle changes

  • local_ospan_promise_domain(), with_ospan_async(), and with_ospan_promise_domain() are deprecated in favor of local_otel_promise_domain(), with_otel_span(), and with_otel_promise_domain() respectively. (#198)

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 2.1 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-07-11
  • ERROR12 OK, 1 ERROR2026-07-10
  • OK13 OK2026-07-01
Show 6 earlier changesHide 6 earlier changes
  • ERROR12 OK, 1 ERROR2026-06-29
  • OK13 OK2026-06-09
  • ERROR12 OK, 1 ERROR2026-06-08
  • OK14 OK2026-04-22
  • ERROR13 OK, 1 ERROR2026-04-18
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 1.5.0
READMEYes · 42 wordsVignettesYes · 9 · dynamicNEWSYes · 100% structured · mentions 1.5.0Citation fileNoWebsiteYes · pkgdown
Help pages
17 (5 internal)includes a package overview page
Examples that run
67%6 run in a plain check · 3 never run
Exported functions with examples
64%
Documented parameters
92%
Return-value docs
58%
Help pages citing references
0%

Downloads

8.4M
CRAN downloads in the past year
Rank #104 · ~23K/day · ~700.5K/mo
Daily download trend is not available in this view yet.
549K30 days
1.8M90 days
8.4M1 year
Compare downloads with other packages →
Also on164.7K r2u128 autocran641.4K conda_forge3.6K c2d4u

Repository

210Stars
16Forks
28Open issues
2Open PRs
10Releases
247Commits
14Commit identities
promisesr
247 commits · Last activity 2026-06-27 · 0% stars, 30d · Default branch at 1.5.0.9000, ahead of CRAN 1.5.0 (checked 2026-10-21)
Responsiveness
How these are sampled
PRs merged (all time)
90%
Median days to close, 50 most recently updated closed issues
12
Median days to close, 50 most recently updated closed PRs
1

Stars over time

2025-09-05 · 2082026-07-14 · 210
PracticesBeta

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

Checks run against github.com/rstudio/promises on 2026-10-21.

Continuous integration (1)
GitHub Actions
Governance and community (1)
Code of conduct
Docs source (2)
pkgdown

GitHub Pages site last deployed 2026-06-27

pkgdown site last built 2025-11-05

CRAN release process (2)
cran-comments.mdrevdep/
Show all practicesHide 1 practice
Lint, format, editor (2)
VS CodeRStudio project
How this is detected·Detection ruleset v4 (2026-10-20)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2025-07-31
    Seen in the repository: CLAUDE.md
    Named in .Rbuildignore: .claude, CLAUDE.md
    Named in .gitignore: .claude
  • GitHub Copilotfirst seen 2025-08-28
    Seen in the repository: .github/copilot-instructions.md
    Pull request: opened by its own account
    Commits: 2 by its own account · at least 3 crediting it in the message
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
17 external dependencies (excludes base and recommended)

Installing promises adds 9 packages (6 with compiled code, 3.8 MB of source tarballs). Heaviest: Rcpp 1.8 MB, rlang 766 KB, cli 629 KB.

Depends (1)
R >= 4.1.0
LinkingTo (0)
none
Enhances (0)
none

People & History

People (5)
Author, Maintainer since 1.4.0 (2025) · added in 1.4.0
Author · added in 1.4.0
Author
Author · added in 1.4.0
Copyright holder, Funder · added in 1.2.1

Previously maintained by Joe Cheng (1.0.1 to 1.3.3).

Listed in earlier versions (1)
RStudio
no longer listed · 1.0.1 to 1.2.0.1
Releases (11)

Pick two releases to compare their code metrics.

  • R
    R 4.6.0 released · 2026-04-24
  • 1.5.0Latest
    record
    2025-11-01 · current release · diff ↗ ·
    added 3 exports
    local_otel_promise_domain, with_otel_promise_domain, with_otel_span
  • 1.4.0
    record
    2025-10-22 · diff ↗ ·
    added 4 exports
    hybrid_then, local_ospan_promise_domain, with_ospan_async, with_ospan_promise_domain
  • 1.3.3
    record
    2025-05-29 · diff ↗
  • R
    R 4.5.0 released · 2025-04-11
  • 1.3.2
    record
    2024-11-28 · diff ↗
  • 1.3.1
    record
    2024-11-26 · diff ↗
  • R
    R 4.4.0 released · 2024-04-24
  • 1.3.0
    record
    2024-04-05 · diff ↗
  • 1.2.1
    record
    2023-08-10 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • R
    R 4.2.0 released · 2022-04-22
  • R
    R 4.1.0 released · 2021-05-18
  • 1.2.0.1
    record
    2021-02-11 · diff ↗ ·
    added 2 exports
    future_promise, future_promise_queue
  • 1.1.1
    record
    2020-06-09 · diff ↗
  • R
    R 4.0.0 released · 2020-04-24
Show 5 earlier eventsHide 5 earlier events
  • 1.1.0
    record
    2019-10-05 · diff ↗
  • R
    R 3.6.0 released · 2019-04-26
  • R
    R 3.5.0 released · 2018-04-23
  • 1.0.1
    record
    2018-04-13
  • R
    R 3.4.0 released · 2017-04-21

Package metadata

First published
2018-04-13
Total releases
11 / 8 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 4.1.0
Download size
3.1 MB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("promises")
Schloerke, B., Posit Software, PBC, Chang, W., Cheng, J., & Gao, C. (2025). promises: Abstractions for Promise-Based Asynchronous Programming (Version 1.5.0) [Computer software]. https://doi.org/10.32614/CRAN.package.promises

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

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

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