From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id B15087FA13 for ; Mon, 7 Jul 2014 15:47:00 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of pelzlpj@gmail.com) identity=pra; client-ip=209.85.220.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="pelzlpj@gmail.com"; x-sender="pelzlpj@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of pelzlpj@gmail.com designates 209.85.220.51 as permitted sender) identity=mailfrom; client-ip=209.85.220.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="pelzlpj@gmail.com"; x-sender="pelzlpj@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-pa0-f51.google.com) identity=helo; client-ip=209.85.220.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="pelzlpj@gmail.com"; x-sender="postmaster@mail-pa0-f51.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYLALijulPRVdwzlGdsb2JhbABag2Bagm+BHKdfmlCBDggWDwEBAQEHCwsJEiqEHBEdARseAxIJBzcCJAERAQUBIjWICwEDEQ2gd4MSaosngXKDEI1SChknDWSFTBEBAQQOjxCDAoFMBYpRkCWSGxgphREf X-IPAS-Result: ArYLALijulPRVdwzlGdsb2JhbABag2Bagm+BHKdfmlCBDggWDwEBAQEHCwsJEiqEHBEdARseAxIJBzcCJAERAQUBIjWICwEDEQ2gd4MSaosngXKDEI1SChknDWSFTBEBAQQOjxCDAoFMBYpRkCWSGxgphREf X-IronPort-AV: E=Sophos;i="5.01,618,1400018400"; d="scan'208";a="83980413" Received: from mail-pa0-f51.google.com ([209.85.220.51]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 07 Jul 2014 15:46:59 +0200 Received: by mail-pa0-f51.google.com with SMTP id hz1so5513064pad.10 for ; Mon, 07 Jul 2014 06:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=k+ZeKkeElPcLKt8fgiI4S0CHBxcK841qel/UUYnonDI=; b=V8OMUbKsC4LdZL1fSpN7/L6fT8QlxBAPxTqkntCN53Ej+Yl1VmIhQx+XK+Pl3cDx9q H+QUf7GXFM5pNqFjXRWL6vZwDyyDtOwO5PCsV+Z1ruHiBOLIE8la4NFdPXNo3iESKOUV ymSuExJ92xu0wChoAQPKFCI95+awU/FILXfjCxQcmTKbjHV7iG/ZCu36P0s5+WX4hyMp x3+GxsKzuBH5dPFF+tcVAkFa8bfiQefcyvRwsbC9dLlOanhHHykySaZVIA7ocANDcvNC RfuVOHQX5QQU4zLRjYbe8sl8pDeaqAx8Ddvd5yA2xKUUR90tNMg1sAt6Oe4w5+9Tvns1 eJKg== MIME-Version: 1.0 X-Received: by 10.70.41.201 with SMTP id h9mr28963483pdl.39.1404740818417; Mon, 07 Jul 2014 06:46:58 -0700 (PDT) Received: by 10.66.144.73 with HTTP; Mon, 7 Jul 2014 06:46:58 -0700 (PDT) Date: Mon, 7 Jul 2014 08:46:58 -0500 Message-ID: From: Paul Pelzl To: OCaml Mailing List Content-Type: multipart/alternative; boundary=047d7bfd0b5e7bbee704fd9ab514 X-Validation-by: pelzlpj@gmail.com Subject: [Caml-list] [ANN] capnp-ocaml 1.0.0 --047d7bfd0b5e7bbee704fd9ab514 Content-Type: text/plain; charset=UTF-8 I'm pleased to announce the first release of capnp-ocaml: https://github.com/pelzlpj/capnp-ocaml Cap'n Proto is a multi-language serialization framework which uses code generation techniques in a manner similar to Protocol Buffers. Its distinguishing feature is that there is no explicit parsing/serialization step: the on-the-wire message format is also designed to serve as an efficient in-memory data structure representation. The capnp-ocaml code generator plugin emits pure OCaml code which is functorized over the underlying message format. At present, a 'bytes'-based message format is provided for ease of use with file and socket I/O. In the future, a Bigarray message format could be easily provided; this would lend itself to a straightforward method for sending and receiving messages via an mmap'd shared memory region. Q: Why would I want to use this over sexplib/bin-prot? A: These projects provide superior language-level integration, but capnp-ocaml is a better choice if you care about language portability. Q: Why would I want to use this over Protocol Buffers? A: Cap'n Proto has the clear advantage of first-class sum types, which are mapped to OCaml variants in a straightforward fashion. You also find yourself intrigued by the potential for better performance and zero-overhead shared-memory message passing. capnp-ocaml is available on OPAM as package "capnp". Paul --047d7bfd0b5e7bbee704fd9ab514 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I'm pleased to announce the first release of capnp-oca= ml:

Cap'n Proto is = a multi-language serialization framework which uses code generation techniq= ues in a manner similar to Protocol Buffers. Its distinguishing feature is = that there is no explicit parsing/serialization step: the on-the-wire messa= ge format is also designed to serve as an efficient in-memory data structur= e representation.

The capnp-ocaml code generator plugin emits pure OCaml = code which is functorized over the underlying message format. At present, a= 'bytes'-based message format is provided for ease of use with file= and socket I/O. In the future, a Bigarray message format could be easily p= rovided; this would lend itself to a straightforward method for sending and= receiving messages via an mmap'd shared memory region.

Q: Why would I want to use this over sexplib/bin-prot?<= /div>
A: These projects provide superior language-level integration, bu= t capnp-ocaml is a better choice if you care about language portability.

Q: Why would I want to use this over Protocol Buffers?<= br>
A: Cap'n Proto has the clear advantage of first-class sum= types, which are mapped to OCaml variants in a straightforward fashion. Yo= u also find yourself intrigued by the potential for better performance and = zero-overhead shared-memory message passing.

capnp-ocaml is available on OPAM as package "capnp= ".

Paul

--047d7bfd0b5e7bbee704fd9ab514--