Skip to content
This repository has been archived by the owner on Jan 22, 2024. It is now read-only.
David Thorpe edited this page Jan 14, 2015 · 24 revisions

This set of frameworks and test applications provides a kit of frameworks and tools for deploying the PostgreSQL database on the Mac OS X operating system and on iOS. For more information on PostgreSQL see: http://www.postgresql.org/.

The code provided will compile to the following products:

  • PGServerKit provides an emdedded PostgreSQL database which runs locally in user-space. You can start and stop the database programatically, edit access control, configuration and perform data backups of the database. This database could be used if you want to provide a persistent data store in your application which is "beefier" than using SQLite, for example.

  • PGClientKit provides an embedded client library, which is simply an interface to the normal postgres "libpq" library, for Mac and iOS. It translates many PostgreSQL types to and from native Foundation types (NSString, NSNumber, etc) and a way to extend to support more types.

  • PGFoundationClient & PGFoundationServer are foundation tools which demonstrate how to use the frameworks on the command-line, rather than in GUI applications.

  • PGControlsKit provides some handy Cocoa view and window controllers you can use in your applications for provide login dialogs, console views and result views.

  • PGServer & PGClient are user-space server applications to demonstrate the use of the frameworks in Cocoa. The former implements an embedded server. It's purely an example of using PGServerKit and PGClientKit, since running a postgresql server in user-space isn't necessarily the best approach. The latter is a vague implementation of psql

  • (Still to be written is a clone of psql for iOS)

#Screenshots!

Here is a screenshot of the PGServer application, after the initialization of a new database server:

PGServer screenshot

Here is the PGServer configuration screen:

PGServer screenshot

Here is a screenshot of the connection window, which is available for use in your cocoa applications by using the PGControlsKit framework:

PGConnectionWindow screenshot

More screenshots of PGServer and PGClient on their respective product pages.

#Building

There are several targets in the XCode project. Some of these are for the Mac OS X platform, and some for iOS. To compile frameworks for release, you'll need to run the following command:

etc/build-frameworks.sh

The built frameworks for Macintosh work with Mac 10.10 and the ones for iOS should work for 8.1. You can also run through the unit tests using the following command:

etc/test-frameworks.sh

You can also build the Mac OS X and iOS applications using the following two commands:

etc/build-macapps.sh
etc/build-iosapps.sh

#Limitations

This software is in development and as such there are plenty of limitations and probably issues. These are listed on each component page. If you know of any issues or feature requests, please let me know and I may be able to help out.