Kovenant

Promises for Kotlin

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

: Function above anything else Runtime agnostic : API layer must be pure Kotlin

: API layer must be pure Kotlin Memory efficient : trying to reduce the overhead as much as possible

: trying to reduce the overhead as much as possible Non blocking : besides being thread safe everything should be non blocking (JVM)

: 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