caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Martin Jambon <martinj@mylife.com>
To: OCaml Mailing List <caml-list@inria.fr>
Subject: [ANN] atdgen
Date: Mon, 13 Sep 2010 17:42:20 -0700	[thread overview]
Message-ID: <4C8EC4EC.3030405@mylife.com> (raw)

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


                 reply	other threads:[~2010-09-14  0:42 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C8EC4EC.3030405@mylife.com \
    --to=martinj@mylife.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).