RxJava and Retrofit. Two really good java libraries that I recently started playing with. RxJava is a java implementation of Reactive Streams standard. It is a specification of API for processing asynchronous processing of streams. RxJava, now in version 2, is a pretty mature implementation of standard and offers a wide array of tools for use with streams. It supports basic operations like map, reduce, filtering, grouping, joining, sorting, time operations like delay, timeout, interval, window, error handling with retrying and many more. Its API is just huge, it probably has everything you may need.
Retrofit is something different and much more simple. It’s just a HTTP client library, a typed HTTP client library! It lets you easily define a java interface for remote Rest service with just a few annotations. Thanks to this, you can use your rest service like plain, local, java service, just invoke a method, pass parameters and get the results, simple as that. Oh, and it has support for RxJava, so these two play with each other really nice.