Hi all,
I'm happy to announce cl-firebird v1.0.0 — a pure Common Lisp database driver for Firebird 3.0, 4.0, 5.0, and 6.0+, with full 1:1 feature parity with node-firebird (
https://github.com/mariuz/node-firebird).
Highlights:
* Pure Common Lisp wire protocol (negotiates up to protocol 20) — no libfbclient, no FFI; runs on SBCL, CCL, and other ANSI CL implementations
* 12-factor connection URIs — firebird://user:pass@host:port/db?pageSize=8192 (IPv6 supported), traditional DSN syntax, and attach-or-create
* Named placeholders (:name) bound from plists, alists, or hash-tables, plus escape/escape-string SQL injection protection
* Built-in thread-safe connection pooling with idle-connection reaping and live metrics (total/idle/active/waiting counts)
* Custom type parsers (type-cast) and per-connection prepared statement caching
* Streaming cursors (sequentially) for large result sets and execute-batch for bulk inserts/updates
* Firebird 6.0 support: tablespaces, schemas, session search paths, default schemas
* Database events (POST_EVENT) via attach-event/detach-event and a Service Manager API (backup/restore, user management, trace, diagnostics)
* 66-check FiveAM test suite with a GitHub Actions CI matrix across Firebird 3.0, 4.0, 5.0, and 6.0-snapshot
Links:
* Quicklisp: (ql:quickload :cl-firebird)
Feedback, issues, and pull requests are welcome!
Regards,
Mariuz