42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
---
|
|
_layout: landing
|
|
---
|
|
|
|
Welcome! This project implements the [relational document](/) concepts for Java, Kotlin, Scala, and Groovy applications.
|
|
|
|
## Modules
|
|
|
|
The coordinate structure for these packages is
|
|
```xml
|
|
<groupId>solutions.bitbadger.documents</groupId>
|
|
<artifactId>[package]</artifactId>
|
|
<version>1.0.0-RC1</version>
|
|
```
|
|
|
|
### solutions.bitbadger.documents.core
|
|
|
|

|
|
|
|
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 <abbr title="Java Database Connectivity">JDBC</abbr> `Connection` type
|
|
|
|
### solutions.bitbadger.documents.groovy
|
|
|
|

|
|
|
|
This far-out module provides Groovy-style extension methods on the `Connection` type. (Right on!)
|
|
|
|
### solutions.bitbadger.documents.scala
|
|
|
|

|
|
|
|
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.
|
|
|
|
### solutions.bitbadger.documents.kotlinx
|
|
|
|

|
|
|
|
This module utilizes [`kotlix.serialization`][kotlinx] 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.
|
|
|
|
|
|
[kotlinx]: https://github.com/Kotlin/kotlinx.serialization "KotlinX Serialization • GitHub"
|