From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id EABFCBBAF for ; Thu, 18 Feb 2010 13:20:02 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4CAHq/fEvRVdvRkGdsb2JhbACPWAGLJwgVAQEBAQkJDAcTAyC+MYRnBA X-IronPort-AV: E=Sophos;i="4.49,496,1262559600"; d="scan'208";a="52974956" Received: from mail-ew0-f209.google.com ([209.85.219.209]) by mail1-smtp-roc.national.inria.fr with ESMTP; 18 Feb 2010 13:20:02 +0100 Received: by ewy1 with SMTP id 1so4397459ewy.17 for ; Thu, 18 Feb 2010 04:20:02 -0800 (PST) MIME-Version: 1.0 Received: by 10.213.104.69 with SMTP id n5mr6705145ebo.20.1266495602371; Thu, 18 Feb 2010 04:20:02 -0800 (PST) Date: Thu, 18 Feb 2010 12:20:01 +0000 Message-ID: <9722eaea1002180420j990becdy9262cf3101d9df97@mail.gmail.com> Subject: [ANN] ORM-0.5 and Dyntype-0.7 From: Thomas Gazagnaire To: caml-list@inria.fr Content-Type: multipart/alternative; boundary=001636c5a6837d2e4e047fdefc2d X-Spam: no; 0.00; ocaml:01 ocaml:01 syntax:01 foo:01 foo:01 run-time:01 camlp:01 anil:01 syntax:01 run-time:01 camlp:01 anil:01 functions:01 functions:01 int:01 --001636c5a6837d2e4e047fdefc2d Content-Type: text/plain; charset=ISO-8859-1 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 --001636c5a6837d2e4e047fdefc2d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable We are pleased to announce a beta release of an Object-Relational Mapper (O= RM) library for OCaml. =A0It is implemented as a type-conv syntax extension= which auto-generates database save and query functions based on type decla= rations.

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

Some example code is:

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

The on= ly backend supported currently in SQLite, but we are working on some altern= ative non-SQL backends (such as Tokyo Cabinet and a git-based version contr= olled database). =A0This beta release is a preview to get feedback and test= ing 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. =A0It 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 --001636c5a6837d2e4e047fdefc2d--