No more callbacks, builders, listeners or verbose code for requesting Android permissions. Get Permission Request Result asynchronously with one function call. Thanks to Kotlin Coroutines, permissions requests are async and lightweight (no new threads are used/created). Library has support for screen rotations. When activity get's recreated, coroutines that have not completed yet, have to be cancelled to avoid memory leaks. When you detect a orientation change, cancel the coroutine with an instance of ActivityRotatingException. Internally, this will retain the current request that is in progress. The Deferred can then be awaited again by calling Peko.resultDeferred.