Databases
Bindings
- Caqti: monadic, asynchronous common interface to relational databases. Currently supports MariahDB, PostgreSQL and SQLite3.
- Sequoia: Create type-safe queries. Currently with bindings to MySQL/MariaDB and SQLite.
- Mongo: OCaml driver for Mongodb
- OCaml-mariahdb: OCaml bindings to MariahDB interface.
- PG’OCaml:
a type-safe interface to PostgreSQL in pure OCaml.
Supports both
PPX
andcamlp4
metaprogramming mechanisms (the latter of which is now deprecated). - ppx_pgsql: a syntax extension for embedded SQL queries using PG’OCaml.
- PostgreSQL-OCaml: a low-level interface to PostgreSQL through the C API (
libpq
). - ezpostgresql: simple, non-type-safe interface to PostgreSQL. Prioritizes simplicity. Wraps around PostgreSQL-OCaml.
- SQLite3-OCaml: OCaml bindings to the SQLite3 database.
- Sqlite3EZ: thin wrapper for SQLite3 with a simplified interface.
- ocaml-redis: Redis bindings for OCaml.
- mysql: bindings to libmysqlclient for interacting with MySQL databases.
- ppx_mysql: Syntax extension for mysql bindings. Blog post.
- mysql_protocol: implementation of MySQL Protocol with the Bitstring library.
- Dbm: a binding to the NDBM/GDBM Unix “databases”.
- camltc: OCaml bindings to Tokyo Cabinet.
- orocksdb: OCaml RocksDB bindings using ctypes.
- ppx_rapper: a syntax extension for PostgreSQL using Caqti
OCaml Clients
- PGX: a pure-OCaml PostgreSQL client library, supporting Async, LWT, or synchronous operations.
Ocaml Databases
- Irmin: a distributed database that follows the same design principles as Git.
- A fairly through tutorial for Irmin can be found here.
- Obigstore: a database with BigTable-like data model atop LevelDB.
- RunOrg: a WIP database server written in OCaml.
- Arakoon: a consistent distributed key-value store built on top of Tokyo Cabinet.
Overlays
- Macaque: Macaque is a library for safe and flexible database queries using comprehensions on top of PG’OCaml.
- ORM: ORM for SQLite.