| Roman Elizarov | 0c2e25d | 2017-05-17 14:59:49 +0300 | [diff] [blame] | 1 | # Coroutines integration |
| Roman Elizarov | f76606a | 2017-05-16 16:49:25 +0300 | [diff] [blame] | 2 | |
| 3 | This directory contains modules that provide integration with various asynchronous callback- and future-based libraries: |
| 4 | |
| 5 | ## Modules |
| 6 | |
| Roman Elizarov | 976990e | 2017-05-17 14:58:10 +0300 | [diff] [blame] | 7 | * [kotlinx-coroutines-jdk8](kotlinx-coroutines-jdk8/README.md) -- integration with JDK8 `CompletableFuture` (Android API level 24). |
| 8 | * [kotlinx-coroutines-nio](kotlinx-coroutines-nio/README.md) -- integration with asynchronous IO on JDK7+ (Android O Preview). |
| Roman Elizarov | f106ff3 | 2017-05-17 12:22:14 +0300 | [diff] [blame] | 9 | * [kotlinx-coroutines-guava](kotlinx-coroutines-guava/README.md) -- integration with Guava [ListenableFuture](https://github.com/google/guava/wiki/ListenableFutureExplained). |
| Roman Elizarov | 44e3ba5 | 2017-08-01 22:01:31 -0700 | [diff] [blame] | 10 | * [kotlinx-coroutines-quasar](kotlinx-coroutines-quasar/README.md) -- integration with [Quasar](http://docs.paralleluniverse.co/quasar/). |
| Roman Elizarov | fc6461f | 2017-05-16 18:48:17 +0300 | [diff] [blame] | 11 | |
| 12 | ## Contributing |
| 13 | |
| 14 | Follow the following simple guidelines when contributing integration with your favorite library: |
| 15 | |
| 16 | * Keep it simple and general. Ideally it should fit into a single file. If it does not fit, then consider |
| 17 | a separate GitHub project to host this integration. |
| Roman Elizarov | f106ff3 | 2017-05-17 12:22:14 +0300 | [diff] [blame] | 18 | * Follow the example of other modules. |
| 19 | Cut-and-paste [kotlinx-coroutines-guava](kotlinx-coroutines-guava) module as a template. |
| Roman Elizarov | f23274a | 2017-05-17 13:27:30 +0300 | [diff] [blame] | 20 | * Write tests and documentation, include top-level `README.md` with short overview and example. |
| 21 | * Reference the new module from all the places: |
| 22 | * List of modules in this document. |
| Kirill Timofeev | a518696 | 2017-10-25 14:25:47 +0300 | [diff] [blame] | 23 | * List of modules in top-level [`settings.gradle`](../settings.gradle). |
| Roman Elizarov | 3535cee | 2017-05-17 15:03:40 +0300 | [diff] [blame] | 24 | * List of modules at the root of documentation site in [`site/docs/index.md`](../site/docs/index.md). |
| 25 | * Update links to documentation website as explained [here](../knit/README.md#usage). |
| 26 | * Squash your contribution to a single commit and create pull request to `develop` branch. |