{"id":13428382,"url":"https://github.com/jasync-sql/jasync-sql","last_synced_at":"2025-04-29T18:40:08.573Z","repository":{"id":37752379,"uuid":"145898133","full_name":"jasync-sql/jasync-sql","owner":"jasync-sql","description":"Java \u0026 Kotlin Async DataBase Driver for MySQL and PostgreSQL written in Kotlin","archived":false,"fork":false,"pushed_at":"2025-02-09T12:42:21.000Z","size":3299,"stargazers_count":1675,"open_issues_count":14,"forks_count":137,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-12T22:16:34.991Z","etag":null,"topics":["async-jdbc","jdbc","jdbc-driver","mysql-driver","postgresql-driver","reactive","sql"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasync-sql.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"oshai","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-08-23T19:28:19.000Z","updated_at":"2025-04-01T02:59:35.000Z","dependencies_parsed_at":"2025-01-03T16:01:55.361Z","dependency_job_id":"89b96db7-077a-4ec4-b18f-dcd41fcbe6bb","html_url":"https://github.com/jasync-sql/jasync-sql","commit_stats":{"total_commits":1197,"total_committers":84,"mean_commits":14.25,"dds":0.5797827903091062,"last_synced_commit":"83029e5d8c7405b87c15376383afe5d8fecf9e06"},"previous_names":[],"tags_count":93,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasync-sql%2Fjasync-sql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasync-sql%2Fjasync-sql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasync-sql%2Fjasync-sql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasync-sql%2Fjasync-sql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasync-sql","download_url":"https://codeload.github.com/jasync-sql/jasync-sql/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251561386,"owners_count":21609394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async-jdbc","jdbc","jdbc-driver","mysql-driver","postgresql-driver","reactive","sql"],"created_at":"2024-07-31T01:00:55.206Z","updated_at":"2025-04-29T18:40:08.548Z","avatar_url":"https://github.com/jasync-sql.png","language":"Kotlin","readme":"\n\n[![Chat at https://gitter.im/jasync-sql/support](https://badges.gitter.im//jasync-sql/support.svg)](https://gitter.im/jasync-sql/support) [![Maven Central](https://img.shields.io/maven-central/v/com.github.jasync-sql/jasync-common.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.github.jasync-sql%22%20AND%20a:%22jasync-common%22) ![Build Status](https://github.com/jasync-sql/jasync-sql/actions/workflows/ci.yml/badge.svg?branch=master) [![Apache License V.2](https://img.shields.io/badge/license-Apache%20V.2-blue.svg)](https://github.com/jasync-sql/jasync-sql/blob/master/LICENSE) [![codecov](https://codecov.io/gh/jasync-sql/jasync-sql/branch/master/graph/badge.svg)](https://codecov.io/gh/jasync-sql/jasync-sql) [![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin#libraries-frameworks-database)\n\n[jasync-sql](https://github.com/jasync-sql/jasync-sql) is a Simple, Netty based, asynchronous, performant and reliable database drivers for\nPostgreSQL and MySQL written in Kotlin.\n\n[Show your ❤ with a ★](https://github.com/jasync-sql/jasync-sql/stargazers)\n\n## Getting started\n\n```Java\n// Connection to MySQL DB\nConnection connection = MySQLConnectionBuilder.createConnectionPool(\n               \"jdbc:mysql://$host:$port/$database?user=$username\u0026password=$password\");\n     \n// Connection to PostgreSQL DB    \nConnection connection = PostgreSQLConnectionBuilder.createConnectionPool(\n               \"jdbc:postgresql://$host:$port/$database?user=$username\u0026password=$password\");\n// Execute query\nCompletableFuture\u003cQueryResult\u003e future = connection.sendPreparedStatement(\"select * from table\");\n// work with result ...\n// Close the connection pool\nconnection.disconnect().get()\n```\n\nSee a full example at [jasync-mysql-example](https://github.com/jasync-sql/jasync-mysql-example) and [jasync-postgresql-example](https://github.com/jasync-sql/jasync-postgresql-example).  \nMore samples on the [samples dir](https://github.com/jasync-sql/jasync-sql/tree/master/samples).  \n\nFor docs and info see the [wiki](https://github.com/jasync-sql/jasync-sql/wiki).\n\n## Download\n\n\n### Maven\n\n```xml\n\u003c!-- mysql --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.github.jasync-sql\u003c/groupId\u003e\n  \u003cartifactId\u003ejasync-mysql\u003c/artifactId\u003e\n  \u003cversion\u003e2.2.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- postgresql --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.jasync-sql\u003c/groupId\u003e\n    \u003cartifactId\u003ejasync-postgresql\u003c/artifactId\u003e\n    \u003cversion\u003e2.2.4\u003c/version\u003e\n\u003c/dependency\u003e\n\n```\n\n### Gradle\n\n```gradle\ndependencies {\n  // mysql\n  compile 'com.github.jasync-sql:jasync-mysql:2.2.4'\n  // postgresql\n  compile 'com.github.jasync-sql:jasync-postgresql:2.2.4'\n}\n```\n\n### Additional Modules\n\n- `com.github.jasync-sql:jasync-r2dbc-mysql` r2dbc extension.\n- `com.github.jasync-sql:postgis-jasync` spatial types support for postgres + postgis.\n- `com.github.jasync-sql:pool-async` async objects pool.\n- `com.github.jasync-sql:db-async-common` internal module for shared logic.\n\n## Overview\n\nThis project is a port of [mauricio/postgresql-async](https://github.com/mauricio/postgresql-async) to Kotlin.  \nWhy? Because the original lib is not maintained anymore, We use it in [ob1k](https://github.com/outbrain/ob1k), and would like to remove the Scala dependency in ob1k.\n\nIf you want information specific to the drivers, check the [PostgreSQL README](postgresql-async/README.md) and the\n[MySQL README](mysql-async/README.md).\n\nYou can view the project's change log [here](CHANGELOG.md).\n\n**Follow us on twitter: [@jasyncs](https://twitter.com/Jasyncs).**\n\n#### DateTime:\nVersion 1.x always returns [JodaTime](http://joda-time.sourceforge.net/) when dealing with date types and not the\n`java.util.Date` class nor jdk-8 dates.  \nVersion 2.x works with java 8 DateTime objects (`java.time.LocalDateTime` and such).  \nThis [post](https://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html) can help with migration.\n\n## Who is using it\n\n* [R2DBC](https://r2dbc.io/)\n* [Spring Data R2DBC](https://spring.io/projects/spring-data-r2dbc)\n* [Vert.x](https://github.com/vert-x3/vertx-mysql-postgresql-client)\n* [micronaut](https://github.com/micronaut-projects/micronaut-sql)\n* [Outbrain/ob1k-db](https://github.com/outbrain/ob1k/)\n* https://github.com/humb1t/jpom\n* [Zeko Data Mapper](https://github.com/darkredz/Zeko-Data-Mapper) and [Zeko SQL Builder](https://github.com/darkredz/Zeko-SQL-Builder)\n* [vertx-jooq async module](https://github.com/jklingsporn/vertx-jooq)\n* [ScalikeJDBC Async](https://github.com/scalikejdbc/scalikejdbc-async)\n* [Quill](https://getquill.io/)\n* [Jasync SQL Extensions](https://github.com/28Smiles/jasync-sql-extensions)\n\nAdd your name here!\n\nIs it used in production on large scale?  \n\n\u003cimg width=\"550\" alt=\"jasync-sql-production\" src=\"resources/production.png\" style=\"max-width:100%;\"\u003e \n\nThe graph above is from only couple of services using it. Y-Axis is # of queries per minute.\n\nThere is also a [TechEmpower test](https://github.com/TechEmpower/FrameworkBenchmarks/pull/4247) using `ktor` and `jasync-sql`.\n\n[Zeko SQL Builder](https://github.com/darkredz/Zeko-SQL-Builder#performance) compared jasync to hikary and vertex:  \n\u003cimg width=\"550\" alt=\"jasync-sql-zeko\" src=\"https://github.com/darkredz/Zeko-SQL-Builder/blob/master/zeko-sql-builder-benchmark.jpeg\" style=\"max-width:100%;\"\u003e \n\n## Compatibility\n\nLatest \u0026 greatest version is [![Maven Central](https://img.shields.io/maven-central/v/com.github.jasync-sql/jasync-common.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.github.jasync-sql%22%20AND%20a:%22jasync-common%22)\n\nThe driver was forked from [mauricio/postgresql-async](https://github.com/mauricio/postgresql-async) and is compatible with it (but not jdbc compatible!). More details in [wiki](https://github.com/jasync-sql/jasync-sql/wiki/Mauricio-Driver-Migration).  \n\n**R2DBC**:\n- Initial support in jasync 0.9.51.\n- Support for 0.8 released version since jasync 1.0.12.\n- Upgrade to GA 1.0 R2DBC (spring boot \u003e= 3) was done in jasync 2.1.0. jaync-sql 2.0.8 will be the last version that's compatible with r2dbc \u003c= 0.9.1. See also [FAQ](https://github.com/jasync-sql/jasync-sql/wiki/FAQ#q-is-r2dbc-version--1-supported).\n\n[Postgis](https://postgis.net/) support added in 2.1.7 (see [blog post](https://ohadshai.medium.com/postgis-in-jasync-10264fc7fac2)).\n\n[Unix domain socket](https://en.wikipedia.org/wiki/Unix_domain_socket) support was added in 2.1.6 (see [#175](https://github.com/jasync-sql/jasync-sql/issues/175)).\n\nChanlog is currently documented in github [release page](https://github.com/jasync-sql/jasync-sql/releases). Previous ones can be found [here](https://github.com/jasync-sql/jasync-sql/blob/master/CHANGELOG.md) and older [here](https://github.com/jasync-sql/jasync-sql/blob/master/the-old-files/CHANGELOG-old.md).\n\nNotable changes:\n- First driver release is version 0.8.20.\n- First driver release to maven is 1.0.0.\n- Migrating from joda to java 8 times was done in 2.0.0 (see [#233](https://github.com/jasync-sql/jasync-sql/pull/233)). Versions \u003c= 2.0 are not suppoprted anymore.\n\n\n## Support\n\n* Check [FAQ](https://github.com/jasync-sql/jasync-sql/wiki/FAQ) or [Known Issues](https://github.com/jasync-sql/jasync-sql/wiki/Known-Issues) or [google](https://www.google.com/search?q=jasync-sql).\n* Open an issue here: https://github.com/jasync-sql/jasync-sql/issues\n* Chat on gitter: https://gitter.im/jasync-sql/support\n* Ask a question in StackOverflow with [jasync-sql](https://stackoverflow.com/questions/tagged/jasync-sql) tag.\n\n## More links\n\n* [How we cloned the original lib](https://hackernoon.com/how-i-ported-10k-lines-of-scala-to-kotlin-in-one-week-c645732d3c1).\n* https://github.com/mauricio/postgresql-async - The original (deprecated) lib.\n* [Async database access with MySQL, Kotlin and jasync-sql](https://medium.com/@OhadShai/async-database-access-with-mysql-kotlin-and-jasync-sql-dbfdb8e7fd04).\n* [Issue with NUMERIC](https://medium.com/@OhadShai/sometimes-a-small-bug-fix-can-lead-to-an-avalanche-f6ded2ecf53d).\n* [jasync-sql + javalin example](https://medium.com/@OhadShai/reactive-java-all-the-way-to-the-database-with-jasync-sql-and-javalin-c982365d7dd2).\n* [jasync-sql + ktor + coroutines example](https://medium.com/@OhadShai/async-with-style-kotlin-web-backend-with-ktor-coroutines-and-jasync-mysql-b34e8c83e4bd).\n* [jasync-sql + spring + kotlin example](https://github.com/godpan/spring-kotlin-jasync-sql).\n* [How to implement an Object Pool with an Actor in Kotlin](https://medium.freecodecamp.org/how-to-implement-an-object-pool-with-an-actor-in-kotlin-ed06d3ba6257).\n* [Coroutines usage](https://medium.com/@OhadShai/just-a-small-example-of-how-kotlin-coroutines-are-great-c9774fe8434).\n* [Spring Data R2DBC video](https://www.youtube.com/watch?v=DvO4zLVDkMs).\n* [JDBC for Spring WebFlux: Spring Data R2DBC](https://medium.com/w-logs/jdbc-for-spring-webflux-spring-data-r2dbc-99690208cfeb).\n* [Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까?](https://alwayspr.tistory.com/44).\n\n\n## Contributing\n\nPull requests are welcome!  \nSee [CONTRIBUTING](CONTRIBUTING.md).\n","funding_links":["https://github.com/sponsors/oshai"],"categories":["Libraries","Projects","Kotlin","Uncategorized"],"sub_categories":["Database","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasync-sql%2Fjasync-sql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasync-sql%2Fjasync-sql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasync-sql%2Fjasync-sql/lists"}