java-async-generator
June 8, 2026 · View on GitHub
java-async-generator
A Java version of Javascript async generator. Idea is to create an iterator-like interface that emit elements as CompletableFuture ( the Java counterpart of Javascript Promise ) enabling asynchronous iteration over data
Releases
Note: ‼️
From release 3.0.0 the miminum supported Java version is the
Java 17and will not be longer available the artifactasync-generator-jdk8
Installation
Maven
<dependency>
<groupId>org.bsc.async</groupId>
<artifactId>async-generator</artifactId>
<version>5.0.0</version> <!-- Or the current release version -->
</dependency>
Samples
Create an Async Generator to make multiple API calls
AsyncGenerator<Response> makeMultipleApiCalls(List<RequestData> requestsData) {
return AsyncGenerator.map(requestsData, requestData -> {
CompletableFuture<Response> res = asyncApiCall( requestData );
return res;
});
}
List<RequestData> resquestsData = ....
// can iterate using lambda function (Consumer)
makeMultipleApiCalls( resquestsData )
.forEachAsync( response -> logger.info( "Api response: " + response ) )
.join();
// can iterate using classic for( : )
AsyncGenerator<Response> generator = makeMultipleApiCalls( resquestsData );
for( Response response : generator ) {
logger.info( "Api response: " + response )
}
Cancellation
Take a look the new Cancellation feature