Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 1.84 KB

README.md

File metadata and controls

36 lines (26 loc) · 1.84 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 JodaTime objects and not as java.util.Date objects
  • 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