Asynchronous database access for Scala and Java
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
project
rdbc-api-java/src/main/java/io/rdbc/japi
rdbc-api-scala/src
rdbc-doc
rdbc-implbase/src
rdbc-java-adapter/src/main/scala/io/rdbc/jadapter
rdbc-tck/src/main/scala/io/rdbc/tck
rdbc-util/src
.gitignore
.travis.yml
LICENSE
README.md
build.sbt
codecov.yml
scalastyle-config.xml
version.sbt

README.md

Travis Codecov Maven Central Gitter license

What is rdbc?

rdbc is a SQL-level relational database connectivity API targeting Scala and Java programming languages. The API is fully asynchronous and provides a possibility to leverage Reactive Streams' stream processing capabilities.

Documentation

See the documentation at http://rdbc.io.

Goals

Following list outlines the goals of the API:

  1. Provide vendor neutral access to most commonly used database features.

    The API is meant to be vendor neutral in a sense that if clients stick to using only standard SQL features no vendor-specific code should be needed and database backends can be switched with no client code changes.

  2. Be asynchronous and reactive.

    All methods that can potentially perform I/O actions don't block the executing thread so the API fits well into non-blocking application design. rdbc allows building applications according to the Reactive Manifesto by using Reactive Streams for asynchronous streaming results with a back-pressure.

  3. Provide a foundation for higher-level APIs.

    rdbc is a rather low-level API enabling clients to use plain SQL queries and get results back. While it can be used directly it's also meant to provide a foundation for higher-level APIs like functional or object relational mapping libraries.