Kovenant
The easy asynchronous library for Kotlin. With extensions for Android, RxJava, JavaFX and much more.
task {
//some (long running) operation, or just:
1 + 1
} then {
i -> "result: $i"
} success {
msg -> println(msg)
}
Developed with the following goals in mind.
- Easy to use: Function above anything else
- Runtime agnostic: API layer must be pure Kotlin
- Memory efficient: trying to reduce the overhead as much as possible
- Non blocking: besides being thread safe everything should be non blocking (JVM)
- Dependency free: when not counting kotlin std
Getting started
Build against Kotlin: 1.0.3
.
Source and target compatibility is 1.6
Gradle
dependencies {
compile 'nl.komponents.kovenant:kovenant:3.3.0'
}
Maven
<dependency>
<groupId>nl.komponents.kovenant</groupId>
<artifactId>kovenant</artifactId>
<version>3.3.0</version>
</dependency>
Android Demo app
Checkout the Android Demo App on Github.
Artifacts
Kovenant has been structured in sub projects so you can cherry pick what you need.
artifact | description |
---|---|
kovenant | Container artifact that consists of kovenant-core , kovenant-combine , kovenant-jvm and kovenant-functional |
kovenant-core | The core of kovenant. Provides the API and default implementations |
kovenant-combine | Adds combine functionality that keep everything strongly typed |
kovenant-jvm | Support for converting between Executors and Dispatchers |
kovenant-ui | Support for UI frameworks that need UI work to operate on a specific process |
kovenant-rx | Add promise support to Rx |
kovenant-android | Extensions for Android specific needs |
kovenant-jfx | Extensions for JavaFX specific needs |
kovenant-disruptor | LMAX Disruptor work queues |
kovenant-progress | Progress configuration helper |
kovenant-functional | Functional Programming idiomatic additions |
Issues
Issues are tracked in Youtrack
Release notes
See Changelog for release notes
Slack
Join the #kovenant
channel on Kotlin Slack.
More Kotlin libraries
Check out Awesome Kotlin