We are pleased to announce a beta release of an Object-Relational Mapper (ORM) library for OCaml.  It is implemented as a type-conv syntax extension which auto-generates database save and query functions based on type declarations.

You can obtain the ORM from Github at http://github.com/mirage/orm , and GODI packages and MacPorts will be available shortly.  Please report issues to mirage@recoil.org or use the Github issue tracker.

Some example code is:

type t = { foo: string; bar: int } with orm
let db = t_init "my.db" in
t_save { foo="t1"; bar=1 } db;
t_get ~foo:(`Contains "t") db

The only backend supported currently in SQLite, but we are working on some alternative non-SQL backends (such as Tokyo Cabinet and a git-based version controlled database).  This beta release is a preview to get feedback and testing from a wider audience.

The Dyntype library provides a convenient way of manipulating types and values at run-time without having to dive into camlp4.  It is described more fully in a WGT2010 paper at: http://www.cl.cam.ac.uk/research/srg/netos/papers/2010-dyntype-wgt.pdf

Thomas Gazagnaire
Anil Madhavapeddy