I would like to announce the release of Caqti 1.2.0. Caqti is an abstraction layer over RDBMS client libraries, including MariaDB, PostgreSQL, and Sqlite3. It uses asynchronous calls where available to provide monadic concurrency, implements connection pooling, provides encoding and decoding of parameters and results, and aids in formulating query strings usable across databases.
I am pleased to see outside contributions for this release; the changes since 1.1.0 are:
- Add a signature for the populate function, and add basic implementations
for all drivers (GPR#28). - Add stream for result extraction (GPR#22 Nathan Rebours).
- Use the postgres driver when
postgres
is specified as the URL scheme
(GPR#25 James Owen). - Documentation improvements (GPR#20 Nathan Rebours, etc.).
- Reimplemented partly ineffective prepare-cache for PostgreSQL.
- Backwards incompatible changes to the driver API.
- Backwards incompatible changes to modules marked internal but exposed due
to being split across packages. - Fix forward compatibility past OCaml 4.08 as announced by deprecations.
About the first point, it should be mentioned that the new populate
function has no optimized implementation yet. It will map to COPY-FROM for PostgreSQL.
Project page: https://github.com/paurkedal/ocaml-caqti/
API documentation: http://paurkedal.github.io/ocaml-caqti/index.html