This package browser is in early development. Mind the rough edges.


Common Lisp library for interacting with PostgreSQL

postmodern is a Common Lisp library for interacting with PostgreSQL databases. It provides the following features:

  • Efficient communication with the database server without need for foreign libraries.

  • Support for UTF-8 on Unicode-aware Lisp implementations.

  • A syntax for mixing SQL and Lisp code.

  • Convenient support for prepared statements and stored procedures.

  • A metaclass for simple database-access objects.

This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date

SIMPLE-DATE is a very basic implementation of date and time objects, used to support storing and retrieving time-related SQL types. It is not loaded by default and you can use local-time (which has support for timezones) instead.

S-SQL is used to compile s-expressions to strings of SQL code, escaping any Lisp values inside, and doing as much as possible of the work at compile time.

CL-POSTGRES is the low-level library used for interfacing with a PostgreSQL server over a socket.

POSTMODERN itself is a wrapper around these packages and provides higher level functions, a very simple data access object that can be mapped directly to database tables and some convient utilities. It then tries to put all these things together into a convenient programming interface


Install the latest version of cl-postmodern as follows:

guix install cl-postmodern

Or install a particular version:

guix install cl-postmodern@1.32.9

You can also install packages in augmented, pure or containerized environments for development or simply to try them out without polluting your user profile. See the guix shell documentation for more information.