jasync-sql alternatives and similar libraries
Based on the "Database" category.
Alternatively, view jasync-sql alternatives based on common mentions on social networks and blogs.
-
mapdb
MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine. -
DBFlow
A blazing fast, powerful, and very simple ORM android database library that writes database code for you. -
kotlin-gremlin-ogm
DISCONTINUED. Kotlin-gremlin-ogm is a type-safe object/graph mapping library for Gremlin enabled graph databases. -
kotlin-jpa-specification-dsl
This library provides a fluent DSL for querying spring data JPA repositories using spring data Specifications (i.e. the JPA Criteria API), without boilerplate code or a generated metamodel. -
zeko-sql-builder
Zeko SQL Builder is a high-performance lightweight SQL query library written for Kotlin language -
fluid-mongo
Kotlin coroutine support for MongoDB built on top of the official Reactive Streams Java Driver -
jds
Jenesis Data Store: a dynamic, cross platform, high performance, ORM data-mapper. Designed to assist in rapid development and data mining -
potassium-nitrite
Potassium Nitrite is a kotlin extension of nitrite database, an open source nosql embedded document store with mongodb like api.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of jasync-sql or a related project?
README
jasync-sql is a Simple, Netty based, asynchronous, performant and reliable database drivers for PostgreSQL and MySQL written in Kotlin.
Getting started
// Connection to MySQL DB
Connection connection = MySQLConnectionBuilder.createConnectionPool(
"jdbc:mysql://$host:$port/$database?user=$username&password=$password");
// Connection to PostgreSQL DB
Connection connection = PostgreSQLConnectionBuilder.createConnectionPool(
"jdbc:postgresql://$host:$port/$database?user=$username&password=$password");
// Execute query
CompletableFuture<QueryResult> future = connection.sendPreparedStatement("select * from table");
// work with result ...
// Close the connection pool
connection.disconnect().get()
See a full example at jasync-mysql-example and jasync-postgresql-example.
More samples on the samples dir.
For docs and info see the wiki.
Download
Maven
<!-- mysql -->
<dependency>
<groupId>com.github.jasync-sql</groupId>
<artifactId>jasync-mysql</artifactId>
<version>2.1.6</version>
</dependency>
<!-- postgresql -->
<dependency>
<groupId>com.github.jasync-sql</groupId>
<artifactId>jasync-postgresql</artifactId>
<version>2.1.6</version>
</dependency>
Gradle
dependencies {
// mysql
compile 'com.github.jasync-sql:jasync-mysql:2.1.6'
// postgresql
compile 'com.github.jasync-sql:jasync-postgresql:2.1.6'
}
Overview
This project is a port of mauricio/postgresql-async to Kotlin.
Why? Because the original lib is not maintained anymore, We use it in ob1k, and would like to remove the Scala dependency in ob1k.
If you want information specific to the drivers, check the [PostgreSQL README](postgresql-async/README.md) and the [MySQL README](mysql-async/README.md).
You can view the project's change log [here](CHANGELOG.md).
Follow us on twitter: @jasyncs.
DateTime:
Version 1.x always returns JodaTime when dealing with date types and not the
java.util.Date
class nor jdk-8 dates.
Version 2.x works with java 8 DateTime objects (java.time.LocalDateTime
and such).
This post can help with migration.
Who is using it
- R2DBC
- Spring Data R2DBC
- Vert.x
- micronaut
- Outbrain/ob1k-db
- https://github.com/humb1t/jpom
- Zeko Data Mapper and Zeko SQL Builder
- vertx-jooq async module
- ScalikeJDBC Async
- Quill
- Jasync SQL Extensions
Add your name here!
Is it used in production on large scale?
The graph above is from only couple of services using it. Y-Axis is # of queries per minute.
There is also a TechEmpower test using ktor
and jasync-sql
.
Zeko SQL Builder compared jasync to hikary and vertex:
Compatibility
The driver was forked from mauricio/postgresql-async and is compatible with it (but not jdbc compatible!). More details in wiki.
R2DBC:
- Initial support in jasync 0.9.51.
- Support for 0.8 released version since jasync 1.0.12.
- Upgrade to GA 1.0 R2DBC (spring boot >= 3) was done in jasync 2.1.0. jaync-sql 2.0.8 will be the last version that's compatible with r2dbc <= 0.9.1. See also FAQ.
Postgis support added in 2.1.7 (see blog post).
Unix domain socket support was added in 2.1.6 (see #175).
Chanlog is currently documented in github release page. Previous ones can be found here and older here.
Notable changes:
- First driver release is version 0.8.20.
- First driver release to maven is 1.0.0.
- Migrating from joda to java 8 times was done in 2.0.0 (see #233). Versions <= 2.0 are not suppoprted anymore.
Support
- Check FAQ or Known Issues or google.
- Open an issue here: https://github.com/jasync-sql/jasync-sql/issues
- Chat on gitter: https://gitter.im/jasync-sql/support
- Ask a question in StackOverflow with jasync-sql tag.
More links
- How we cloned the original lib.
- https://github.com/mauricio/postgresql-async - The original (deprecated) lib.
- Async database access with MySQL, Kotlin and jasync-sql.
- Issue with NUMERIC.
- jasync-sql + javalin example.
- jasync-sql + ktor + coroutines example.
- jasync-sql + spring + kotlin example.
- How to implement an Object Pool with an Actor in Kotlin.
- Coroutines usage.
- Spring Data R2DBC video.
- JDBC for Spring WebFlux: Spring Data R2DBC.
- Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까?.
Contributing
Pull requests are welcome!
See [CONTRIBUTING](CONTRIBUTING.md).
*Note that all licence references and agreements mentioned in the jasync-sql README section above
are relevant to that project's source code only.