Pure Pony Postgres driver
Postgres is an alpha-level package.
We welcome users who are willing to experience errors and possible application shutdowns. Your feedback on API usage and in reporting bugs is greatly appreciated.
Please note that if this library encounters a state that the programmers thought was impossible to hit, it will exit the program immediately with informational messages. Normal errors are handled in standard Pony fashion.
- Install corral
corral add github.com/ponylang/postgres.git --version 0.2.2corral fetchto fetch your dependenciesuse "postgres"to include this packagecorral run -- ponycto compile your application
This library has a transitive dependency on ponylang/ssl. It requires a C SSL library to be installed. Please see the ssl installation instructions for more information.
https://ponylang.github.io/postgres
The examples directory contains self-contained programs demonstrating different parts of the library. See examples/README.md for descriptions.
This library aims to support the Postgres API to the level required to use Postgres from Pony in ways that the Pony community needs. We do not aim to support the entire API surface. If there is functionality missing, we will happily accept high-quality pull requests to add additional support so long as they don't come with additional external dependencies or overly burdensome maintenance.
MD5 password and SCRAM-SHA-256 authentication are supported. SCRAM-SHA-256 is the default authentication method in PostgreSQL 10 and later.
KerberosV5, cleartext, SCM, GSS, SSPI, SCRAM-SHA-256-PLUS (channel binding), and certificate authentication methods are not supported.
Optional SSL/TLS encryption is supported. Pass SSLRequired with an SSLContext to ServerConnectInfo to enable encrypted connections. If the server refuses SSL negotiation, the connection fails. Plaintext connections are the default.
Simple queries, parameterized queries (extended query protocol), named prepared statements, query cancellation, and LISTEN/NOTIFY are supported.
Some functionality that isn't yet supported is:
- Supplying connection configuration to the server
- Pipelining queries
- Function calls
- COPY operations
Note the appearance of an item on the above list isn't a guarantee that it will be supported in the future.
The following data types are fully supported and will be converted from their postgres type to the corresponding Pony type. All other data types will be presented as String.
bool=>Boolint2=>I16int4=>I32int8=>I64float4=>F32float8=>F64
As String is our default type, all character types such as text are returned to the user as String and as such, aren't listed in our supported types.