#RxAerospike Build Status Maven Central GitHub license

RxAerospike is a wrapper for aerospike-client-java which re-implements the database operations using RxJava2 and Kotlin. This wrapper also has 100% code coverage.

Current features

  • RxAerospike implements all non-deprecated operations from IAsyncClient and every operation returning a Task.
  • Synchronous operations have not been implemented yet, but they will be. Also, certain scan operations are implemented in a strange way, which does not send onCompleted() or onFailure() notifications (although they can throw exceptions), and this increases the difficulty of wrapping them.
  • All the other operations implemented in AerospikeClient and AsyncClient are still available in this wrapper (synchronous, admin and scan operations from IAerospikeClient), but not implemented using RxJava.

Why Kotlin?

  • Kotlin makes it very easy to implement class delegation by eliminating all the boilerplate code.
  • Also Kotlin supports default parameters, which generate different methods auto-magically in Java by using the annotation @JvmOverloads, reducing boilerplate code even more.

Maven central

	<dependency>
		<groupId>com.github.ganet</groupId>
		<artifactId>rxaerospike</artifactId>
		<version>0.3.0</version>
	</dependency>

FAQ

Why not implement the wrapper using Kotlin extension functions?

In a Kotlin world, that would be the way to go and the ideal implementation. However, this wrapper is intended to be compatible with Java applications as well, so class delegation is a better option.

Why don’t you have a code coverage badge to prove the 100% coverage claim?

I attached an IntelliJ coverage report to the project, as other coverage tools like JaCoCo would not report the correct percentage (i.e. they base their results on .class bytecode rather than real source code and in this case AerospikeRxClient extends AsyncClient but its not responsible at all for testing its implementation). Feel free to download the project and run the tests with IntelliJ code coverage enabled.

Contact and contributions

I will setup a contribution model soon, please use this mailing list for any questions for now: https://groups.google.com/forum/#!forum/rxaerospike

compile "com.github.ganet:rxaerospike:0.3.0"

Related Libraries

kuery

Strongly typed SQL in Kotlin

Last updated 3 mins ago

sqldelight

Generates Java models from CREATE TABLE statements.

Last updated 3 mins ago

kotliquery

A handy Database access library in Kotlin

Last updated 3 mins ago

tekniq

A framework designed around Kotlin providing a full-featured HTTP Framework, Restful HTTP Client, JDBC DSL, Loading Cache, Configurations, Validations, and more

Last updated 3 mins ago

pultusorm

PultusORM is a sqlite ORM library for kotlin / Java / Android.

Last updated 3 mins ago