// the find
marijnh/Postmodern
A Common Lisp PostgreSQL programming interface
Postmodern is a Common Lisp PostgreSQL driver that implements the wire protocol directly in Lisp — no foreign libraries, no FFI. It ships a Lisp-to-SQL compiler (S-SQL) that does most of its work at compile time, a thin DAO metaclass, and connection pooling. If you write Common Lisp and touch Postgres, this is the library, not a library.
The wire protocol is implemented entirely in Lisp, which means no libpq, no OS-level dependency management, no version mismatch headaches across platforms. S-SQL compiles s-expressions to SQL at macro-expansion time, so you catch syntax errors before runtime and avoid building strings manually. Marijn Haverbeke is a credible author — this is the same person behind CodeMirror and ProseMirror, and the July 2025 commit history shows it's not stagnant. SCRAM-SHA-256 auth and prepared statements are supported out of the box, which puts it ahead of a lot of niche-language drivers that still only do MD5.
The built-in connection pooler is a toy — `*max-pool-size*` with no minimum, no health checks, no reconnect on stale connections. Anything resembling production load should use PgBouncer in front of it. The simple-date library has no timezone awareness at all; you need to pull in local-time separately and wire up the readers yourself, which the README mentions almost apologetically. The DAO layer is intentionally minimal — no lazy loading, no relationships, no query chaining — so you'll be writing raw S-SQL for anything beyond single-table CRUD, which is fine but worth knowing upfront. ABCL has a known broken dao-class inheritance bug that's been open since 2021, so if that's your implementation, DAOs are off the table.