Welcome! This project implements the relational document concepts for Java, Kotlin, Scala, and Groovy applications. It uses four different modules to provide an idiomatic developer experience across four major JVM languages.

Depend on Them

The coordinate structure for these packages is

<groupId>solutions.bitbadger.documents</groupId>
<artifactId>[module]</artifactId>
<version>1.0.0-RC1</version>

core   Maven Central Version

This module does most of the heavy lifting for all languages. It provides an optimal Java experience and an optimal Kotlin experience when using a reflection-based JSON serializer. Queries that can return one-or-none return an Optional<T> instance. This module also has Kotlin extensions on the JDBC Connection type

groovy   Maven Central Version

This far-out module provides Groovy-style extension methods on the Connection type. (Right on!)

scala   Maven Central Version

This module provides a native Scala API for this library, using its collection types instead of the default Java collections, and returns the Scala Option[A] type for one-or-none queries. It also provides Scala extension methods for the Connection type.

kotlinx   Maven Central Version

This module utilizes kotlix.serialization for its serialization and deserialization, which implements these actions without reflection. As its primary consumer is Kotlin, it returns null for one-or-none queries.

Read All about Them

  • The "Docs" heading above will take you to the "Getting Started" page for these libraries, and is the entry point for all documentation (currently under active development).

  • The "Core API" heading links to the JavaDoc for the core module. Groovy consumers can also review the Connection extension functions there.

  • The "Scala API" heading links to the ScalaDoc for the scala module.

  • The "KotlinX API" heading links to the JavaDoc for the kotlinx module.

Talk about Them

Bit Badger Solutions Git is not set up for account registration (yet! -- Homer Simpson). However, the author can be reached as @Bit_Badger on Twitter, daniel@fedi.summershome.org on the Fediverse, or via e-mail as daniel at the parent domain to this site's domain. This project is open to the public, so you will be able to track the progress of any issues you may report.