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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 68CDABC58 for ; Tue, 14 Sep 2010 02:42:23 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApQAAD5hjkxCbwQakWdsb2JhbAChSxUBAQEBCQsKBxEEHsYPBYVAhE2FXoJ9 X-IronPort-AV: E=Sophos;i="4.56,361,1280700000"; d="scan'208";a="59215581" Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 14 Sep 2010 02:42:22 +0200 Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43]) by gateway1.messagingengine.com (Postfix) with ESMTP id 07681426 for ; Mon, 13 Sep 2010 20:42:22 -0400 (EDT) Received: from frontend1.messagingengine.com ([10.202.2.160]) by compute3.internal (MEProxy); Mon, 13 Sep 2010 20:42:22 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:subject:content-type:content-transfer-encoding; s=smtpout; bh=M+E0CYf4QQZDH3GBfTLXi4vDi0I=; b=Cxiue9QC2vTpVJzkVUtx/B2FORZjWVitzD14n6q7G4aVX9aJtp7AJw37Ia1SkwDy9+hmYQYKV+v7dqheqkClvAu6VfnKAtzOa7uYj9U4juaCRy1U0VvgfAhTB2gH93tGcV1f0J2mUUrZprdf0hDVJ9etO+/urr1g+V67E53eGak= X-Sasl-enc: fI23vnODClOx+5sN4xfs+sMeb+pQ9nt1y0bA753sewZt 1284424941 Received: from [192.168.1.61] (64-71-1-165.static.wiline.com [64.71.1.165]) by mail.messagingengine.com (Postfix) with ESMTPSA id AE1A1405ED7 for ; Mon, 13 Sep 2010 20:42:21 -0400 (EDT) Message-ID: <4C8EC4EC.3030405@mylife.com> Date: Mon, 13 Sep 2010 17:42:20 -0700 From: Martin Jambon User-Agent: Thunderbird 2.0.0.22 (X11/20090908) MIME-Version: 1.0 To: OCaml Mailing List Subject: [ANN] atdgen Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ocaml:01 syntax:01 ocaml:01 command-line:01 syntax:01 annotations:01 parametrized:01 parser:01 vastly:01 hashes:01 variants:01 variants:01 adjustable:98 adjustable:98 polymorphic:01 Hi list, It is my pleasure to announce atdgen, a program for deriving OCaml serializers and deserializers from type definitions. The supported serialization formats are JSON and a new binary format called biniou. The main URL for atdgen is http://oss.wink.com/atdgen/ Four distinct source packages were created: - biniou: a new binary format designed for full extensibility - yojson: a new library for the JSON format - atd: "Adjustable Type Definitions", a syntax for type definitions - atdgen: OCaml code generator All four packages are distributed under the terms of a BSD license. MyLife holds the copyright for atd and atdgen while I hold the copyright for biniou and yojson. Multiple ideas have motivated this work. They are explained in the following document: http://martin.jambon.free.fr/atd-biniou-intro.html A standalone example using atdgen is given in the source distribution and is accessible at: http://oss.wink.com/atdgen/atdgen-1.0.1/example/ Package details: ================ Atdgen Author: Martin Jambon Homepage: http://oss.wink.com/atdgen/ Version: 1.0.1 Kind: code generator Godi package: yes Description: Atdgen is a command-line program that takes as input type definitions in the ATD syntax and produces OCaml code suitable for data serialization and deserialization. Two data formats are currently supported, these are biniou and JSON. Atd Author: Martin Jambon Homepage: http://oss.wink.com/atd/ Version: 0.9.2 Development status: stable Kind: library Godi package: yes Description: ATD stands for Adjustable Type Definitions. It is a type definition language designed to accommodate a variety of programming languages and data formats by the means of target-specific annotations. It supports sum types, parametrized types and inheritance. The library provides a parser and other tools useful for manipulating ATD type definitions. The reference manual gives a complete description of the syntax. Biniou Author: Martin Jambon Homepage: http://martin.jambon.free.fr/biniou.html Version: 0.9.1 Development status: stable Kind: library Godi package: yes Description: Biniou is a binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve. Biniou is vastly equivalent to JSON in terms of functionality but allows implementations about 4 times as fast (see godi-yojson for comparison), with 25-35% space savings. Biniou data can be decoded into human-readable form without knowledge of type definitions (except for field and variant names which are represented by 31-bit hashes). Yojson Author: Martin Jambon Homepage: http://martin.jambon.free.fr/yojson.html Version: 0.8.1 Development status: stable Kind: library Godi package: yes Description: Yojson is an optimized parsing and printing library for the JSON format. It addresses a few shortcomings of json-wheel including 3x speed improvement, polymorphic variants and optional syntax for tuples and variants. Enjoy! Martin