We are developing an ElasticSearch client for Kotlin w/DSL and generating the core REST calls from the ElasticSearch API spec, and also a lot of the DSL model, then having pluggable HTTP so you can integrate well with different frameworks and styles (sync, async, non blocking, …). Will also integrate with libraries like Kovenant (Promises for Kotlin) as an optional model. A REST client is important because some hosted ElasticSearch does not support the binary protocol. And we will still support it as well later by wrapping a binary client and continue to use the same DSL. So that will happen too as a 2nd round.