# java-async-generator
**Repository Path**: rurrection/java-async-generator
## Basic Information
- **Project Name**: java-async-generator
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-12
- **Last Updated**: 2025-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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 17` and
> will not be longer available the artifact `async-generator-jdk8`
## Installation
**Maven**
```xml
org.bsc.async
async-generator
3.2.2
```
## Samples
### Create an Async Generator to make multiple API calls
```java
AsyncGenerator makeMultipleApiCalls(List requestsData) {
return AsyncGenerator.map(requestsData, requestData -> {
CompletableFuture res = asyncApiCall( requestData );
return res;
});
}
List resquestsData = ....
// can iterate using lambda function (Consumer)
makeMultipleApiCalls( resquestsData )
.forEachAsync( response -> logger.info( "Api response: " + response ) )
.join();
// can iterate using classic for( : )
AsyncGenerator generator = makeMultipleApiCalls( resquestsData );
for( Response response : generator ) {
logger.info( "Api response: " + response )
}
```
## Articles:
* [How to stream data over HTTP using Java Servlet and Fetch API](https://bsorrentino.github.io/bsorrentino/web/2024/07/21/how-to-stream-data-in-java.html)
[CompletableFuture]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletableFuture.html