Skip to content

Latest commit

 

History

History
57 lines (36 loc) · 1.86 KB

README.md

File metadata and controls

57 lines (36 loc) · 1.86 KB

Summary

Java Async I/O

The main purpose of this project is to enable async interaction with the existing, sync, InputStream and OutputStream primitives in Java.

All I/O operations are performed on the ForkJoinPool thread pool. A CompletableFuture is returned from each async operation, so that it can be continued from.

Input

Input operations never block as long as the InputStream implementation correctly reports its available bytes.

Output

Output operations are not guaranteed to be non-blocking because OutputStream doesn't report its availability.

WhenReady

This async stack is based on a generic facility, WhenReady, that can be used for other kinds of async execution.

WhenReady takes a ready predicate eventually along with an action function, a result value, and/or a done predicate. When the ready predicate returns true, WhenReady may assign the result, it may execute the action once, or it may start executing the action in a loop until the done predicate returns true.

Documentation

You'll find articles in the docs folder in this source tree.

Or, you may jump straight to the API Reference

Support

If you don't find an answer for your question, please send an email to Zlatko Michailov.

Building the Sources

This project uses Gradle to automate the build and test process.

gradle java

Running the Tests

gradle test

Preparing for Eclipse

gradle eclipse

Referencing the Package

Include these sectons in your build.gradle script:

repositories {
    maven {
        url "http://zlatko-michailov.github.io/async-io/repo/maven"
    }
}

dependencies {
    compile 'michailov:async-io:0.4'
}