# 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