Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.97 KB

README.md

File metadata and controls

37 lines (27 loc) · 1.97 KB

postgresql-async - an async Netty based PostgreSQL driver.

The main goal of this project is to implement a performant and fully functional async PostgreSQL driver. This project has no interest in JDBC, it's supposed to be a clean room implementation for people interested in talking directly to PostgreSQL.

PostgreSQL protocol information and definition can be found here

This driver contains Java code from the JDBC PostgreSQL driver under the com.github.jasync.sql.db.postgresql.util package consisting of the ParseURL class.

What can it do now?

  • connect to a database with or without authentication (supports MD5 and cleartext authentication methods)
  • receive database parameters
  • receive database notices
  • execute direct queries (without portals/prepared statements)
  • portals/prepared statements
  • parses most of the basic PostgreSQL types, other types are parsed as string
  • date, time and timestamp types are handled as JSR 310 objects and not as java.util.Date objects
  • Interval are handled as JSR 310 (Period, Duration) and PeriodDuration(https://www.threeten.org/threeten-extra/index.html)
  • all work is done using the new scala.concurrent.Future and scala.concurrent.Promise objects
  • support for Byte arrays if using PostgreSQL >= 9.0
  • support for LISTEN/NOTIFY operations (check ListenNotifySpec for an example on how to use it );

What is missing?

  • more authentication mechanisms
  • benchmarks
  • more tests (run the jacoco:cover sbt task and see where you can improve)
  • timeout handler for initial handshare and queries
  • implement byte array support for PostgreSQL <= 8

Supported Java types and their destination types on PostgreSQL

Moved to https://github.com/jasync-sql/jasync-sql/wiki/PostgreSQL-Types