57 lines
3.4 KiB
Markdown

---
_layout: landing
title: Welcome!
---
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
```xml
<groupId>solutions.bitbadger.documents</groupId>
<artifactId>[module]</artifactId>
<version>1.0.0-RC1</version>
```
### core &nbsp; [![Maven Central Version][core-badge]][core-mvn]
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
### groovy &nbsp; [![Maven Central Version][groovy-badge]][groovy-mvn]
This far-out module provides Groovy-style extension methods on the `Connection` type. (Right on!)
### scala &nbsp; [![Maven Central Version][scala-badge]][scala-mvn]
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 &nbsp; [![Maven Central Version][kotlinx-badge]][kotlinx-mvn]
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.
## 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.
[core-badge]: https://img.shields.io/maven-central/v/solutions.bitbadger.documents/core
[core-mvn]: https://central.sonatype.com/artifact/solutions.bitbadger.documents/core
[groovy-badge]: https://img.shields.io/maven-central/v/solutions.bitbadger.documents/groovy
[groovy-mvn]: https://central.sonatype.com/artifact/solutions.bitbadger.documents/groovy
[scala-badge]: https://img.shields.io/maven-central/v/solutions.bitbadger.documents/scala
[scala-mvn]: https://central.sonatype.com/artifact/solutions.bitbadger.documents/scala
[kotlinx-badge]: https://img.shields.io/maven-central/v/solutions.bitbadger.documents/kotlinx
[kotlinx-mvn]: https://central.sonatype.com/artifact/solutions.bitbadger.documents/kotlinx
[kotlinx]: https://github.com/Kotlin/kotlinx.serialization "KotlinX Serialization &bull; GitHub"