P3 is a modern, lean and mean PostgreSQL client for Pharo

P3 is a modern, lean and mean PostgreSQL client for Pharo.

P3Client uses frontend/backend protocol 3.0 (PostgreSQL version 7.4 [2003] and later), implementing the simple query cycle. It supports plaintext and md5 password authentication as well as SSL connections. When SQL queries return row data, incoming data is efficiently converted to objects. P3Client supports most common PostgreSQL types.

With P3DatabaseDriver, an interface between Glorp, an advanced object-relational mapper, and P3Client, most Glorp unit tests pass (the same number as the older, proven PostgresV2 driver, that is using the legacy 2.0 protocol). This was the initial design goal.

More info, usage examples and code at https://github.com/svenvc/P3

P3 is written in pure Pharo, using a TCP network connection to PostgreSQL.

This is an alpha release for the brave of heart that needs more real world testing before it is ready for general release.

To load: The default group loads P3Client and its basic dependencies NeoJSON and ZTimestamp

Metacello new
baseline: ‘P3’;
repository: ‘github://svenvc/P3’;
load.

The glorp group loads P3DatabaseDriver and the whole of Glorp (warning: large download)

Metacello new
baseline: ‘P3’;
repository: ‘github://svenvc/P3’;
load: ‘glorp’.


Sven

PS: I wrote this using 64-bit Pharo 6 on macOS using the Calypso browser and it was a beautiful & satisfying experience. Thank you Denis, well done ! I also used Iceberg a second time and it starts to feel natural to me. Thank you Nico and Esteban !

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: