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 A84107EF10 for ; Thu, 26 Feb 2015 16:07:42 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of koen.dekeyser@gmail.com) identity=pra; client-ip=209.85.214.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="koen.dekeyser@gmail.com"; x-sender="koen.dekeyser@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of koen.dekeyser@gmail.com designates 209.85.214.182 as permitted sender) identity=mailfrom; client-ip=209.85.214.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="koen.dekeyser@gmail.com"; x-sender="koen.dekeyser@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-ob0-f182.google.com) identity=helo; client-ip=209.85.214.182; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="koen.dekeyser@gmail.com"; x-sender="postmaster@mail-ob0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B1AgD0Ne9Um7bWVdFbgj+BFU4MBIMFvnyFcAKBHQdNAQEBAQEBEAEBAQEBBgsLCRQuhBABAQMBEhEdARsdAQMBCwYFBAc3AgIhAQERAQUBHAYTIod4AQMJCA2wRT4xiy6Ba4J3jnYKGScNVIRsAQEBAQEBBAEBAQEBAQEBFAEFDosFgkSCJgQHgmiBQwWTT4QfgUaBGzmLbIJLgXQSI4EMCYQSPTGCQwEBAQ X-IPAS-Result: A0B1AgD0Ne9Um7bWVdFbgj+BFU4MBIMFvnyFcAKBHQdNAQEBAQEBEAEBAQEBBgsLCRQuhBABAQMBEhEdARsdAQMBCwYFBAc3AgIhAQERAQUBHAYTIod4AQMJCA2wRT4xiy6Ba4J3jnYKGScNVIRsAQEBAQEBBAEBAQEBAQEBFAEFDosFgkSCJgQHgmiBQwWTT4QfgUaBGzmLbIJLgXQSI4EMCYQSPTGCQwEBAQ X-IronPort-AV: E=Sophos;i="5.09,653,1418079600"; d="scan'208";a="123526671" Received: from mail-ob0-f182.google.com ([209.85.214.182]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 26 Feb 2015 16:07:41 +0100 Received: by mail-ob0-f182.google.com with SMTP id nt9so11233687obb.13 for ; Thu, 26 Feb 2015 07:07:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=DEIlIlNvBVBPLcCAfk9/ly+WtYUnCT8nYzqlnOhJd+M=; b=l5CIKmiDvmjMIbaqz1mqAauXrfJYOrzwp9IJF40d2VcOSwaj6Z4TkWTeUd3cPuzqb2 MPlCNdtWyklOxCydA5gPxQt1LnUfngvUCtu93hoPsJ4NZlAj0embq8+3QCLBlbpUeKnm Y2uJiZsgClGCUWCQMIkoIbABjJrb6G0ALXjb2DT9/Ik7uUT+MeO+QUfU3zGMEH0nPUTW nF/SoH7LksIr/WRN9nl2Uq3GF1pAK1WOPE5P1qfGRSWdCKgiBJtL6wQkhBpKmH1yLvTE w64ZNzPM+aqfJfaSfyY9eAofKcU6e2l6lUzAK25Y1KinomXk74MgO+JVz3ifW4YsTMQM YYsA== MIME-Version: 1.0 X-Received: by 10.202.106.14 with SMTP id f14mr6038473oic.39.1424963260703; Thu, 26 Feb 2015 07:07:40 -0800 (PST) Received: by 10.182.87.9 with HTTP; Thu, 26 Feb 2015 07:07:40 -0800 (PST) In-Reply-To: References: Date: Thu, 26 Feb 2015 16:07:40 +0100 Message-ID: From: Koen De Keyser To: Trevor Smith Cc: "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=001a1140365cf8e8f1050fff1cbf Subject: Re: [Caml-list] Protobuf and OCaml --001a1140365cf8e8f1050fff1cbf Content-Type: text/plain; charset=UTF-8 I've worked with Piqi, converting a project that was using custom serialization to Protobuf. This was a fairly pleasant experience: the main developer was very responsive and the code base for the code generator is sufficiently clean that it made adding custom functionality quite easy. The main reason I went with Piqi is the code generation functionality: one of the main reasons to adopt something like Protobuf is the possibility of generating code in a multitude of languages (e.g. Python for scripting / testing purposes) from a single definition file (the proto file in this case). Any change there is automatically picked up by the build process in all of the languages, so your code stays in sync across languages. This is not the case if the definition of the struct is in Ocaml itself. Koen De Keyser On Wed, Feb 25, 2015 at 5:58 PM, Trevor Smith wrote: > Hello, > > Is anyone out there using OCaml with Protobufs? If so, what library/tools > are you using, and how do you like the setup? Also, are you using Protobufs > in a production setting? > > I found online but have not used any of the below myself: > > 1) piqi - http://piqi.org/ > 2) obitz - https://github.com/orbitz/ocaml-protobuf > 3) whitequark's protobufs - https://github.com/orbitz/ocaml-protobuf > > Curious to hear your experiences. Thank you. > > Trevor > --001a1140365cf8e8f1050fff1cbf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I've worked with Piqi, converting a project = that was using custom serialization to Protobuf. This was a fairly pleasant= experience: the main developer was very responsive and the code base for t= he code generator is sufficiently clean that it made adding custom function= ality quite easy.

The main reason I went with Piqi is the code= generation functionality: one of the main reasons to adopt something like = Protobuf is the possibility of generating code in a multitude of languages = (e.g. Python for scripting / testing purposes) from a single definition fil= e (the proto file in this case). Any change there is automatically picked u= p by the build process in all of the languages, so your code stays in sync = across languages. This is not the case if the definition of the struct is i= n Ocaml itself.

Koen De Keyser

On Wed, Feb 25, 2015 at 5:58 PM, Trevor= Smith <trevorsummerssmith@gmail.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Hello,

Is= anyone out there using OCaml with Protobufs? If so, what library/tools are= you using, and how do you like the setup? Also, are you using Protobufs in= a production setting?

I found online but have not= used any of the below myself:

1) piqi -=C2=A0http://piqi.org/
3) white= quark's protobufs -=C2=A0https://github.com/orbitz/ocaml-protobuf
=

Curious to hear your experiences.=C2=A0Thank you.
=

Trevor

--001a1140365cf8e8f1050fff1cbf--