async: Coroutines: Generators / Yield, Async / Await, and Streams

Write sequential-looking code that pauses and resumes. gen() creates a generator, an iterator that returns a value and pauses each time it reaches a yield() call. async() creates a promise, which runs until it reaches a call to await(), then resumes when information is available. These work similarly to generator and async constructs from 'Python' or 'JavaScript'. Objects produced are compatible with the 'iterators' and 'promises' packages. Version 0.3 supports on.exit, single-step debugging, stream() for making asynchronous iterators, and delimited goto() in switch() calls.

Version: 0.3.2
Depends: R (≥ 4.1)
Imports: iterors, nseval (≥ 0.4.3), later, promises, testthat (≥ 3.0.0), stringr, methods
Suggests: rmarkdown, knitr, dplyr, curl, audio, profvis, ggplot2, XML
Published: 2023-05-25
DOI: 10.32614/CRAN.package.async
Author: Peter Meilstrup [aut, cre]
Maintainer: Peter Meilstrup <peter.meilstrup at>
License: GPL-2
NeedsCompilation: no
Materials: README NEWS
CRAN checks: async results


Reference manual: async.pdf
Vignettes: The 'async' package: Generators, async/await, and asynchronous streams for R
A Musical Introduction to Generators
The Coroutine Language
Scraping the web quickly using async/await


Package source: async_0.3.2.tar.gz
Windows binaries: r-devel:, r-release:, r-oldrel:
macOS binaries: r-release (arm64): async_0.3.2.tgz, r-oldrel (arm64): async_0.3.2.tgz, r-release (x86_64): async_0.3.2.tgz, r-oldrel (x86_64): async_0.3.2.tgz
Old sources: async archive

Reverse dependencies:

Reverse suggests: QBMS


Please use the canonical form to link to this page.