Re: [apps-discuss] Concise Binary Object Representation (CBOR)

Carsten Bormann <cabo@tzi.org> Thu, 23 May 2013 16:40 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F409C21F969E for <apps-discuss@ietfa.amsl.com>; Thu, 23 May 2013 09:40:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.486
X-Spam-Level:
X-Spam-Status: No, score=-106.486 tagged_above=-999 required=5 tests=[AWL=-0.237, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0RoRW7raMsmO for <apps-discuss@ietfa.amsl.com>; Thu, 23 May 2013 09:40:04 -0700 (PDT)
Received: from informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) by ietfa.amsl.com (Postfix) with ESMTP id D5F6321F9783 for <apps-discuss@ietf.org>; Thu, 23 May 2013 09:38:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from smtp-fb3.informatik.uni-bremen.de (smtp-fb3.informatik.uni-bremen.de [134.102.224.120]) by informatik.uni-bremen.de (8.14.4/8.14.4) with ESMTP id r4NGcA6l022904; Thu, 23 May 2013 18:38:10 +0200 (CEST)
Received: from [10.0.1.4] (reingewinn.informatik.uni-bremen.de [134.102.218.123]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTPSA id ED7783067; Thu, 23 May 2013 18:38:09 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
Content-Type: text/plain; charset="iso-8859-1"
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <CAK3OfOjm0B8rA_BEkQKUJqTPuV+A8=gcDi+THD1xu-JtFSJ1gA@mail.gmail.com>
Date: Thu, 23 May 2013 18:38:09 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <E5BA4DFA-6E2E-44AA-91B2-716D595C3DF0@tzi.org>
References: <61CB1D18-BABC-4C77-93E6-A9E8CDA8326B@vpnc.org> <CAK3OfOjm0B8rA_BEkQKUJqTPuV+A8=gcDi+THD1xu-JtFSJ1gA@mail.gmail.com>
To: Nico Williams <nico@cryptonector.com>
X-Mailer: Apple Mail (2.1503)
Cc: Paul Hoffman <paul.hoffman@vpnc.org>, apps-discuss@ietf.org
Subject: Re: [apps-discuss] Concise Binary Object Representation (CBOR)
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 May 2013 16:40:20 -0000

On May 23, 2013, at 18:13, Nico Williams <nico@cryptonector.com> wrote:

> Also, I believe this is the fifth binary encoding of JSON proposed
> thus far.  

1) CBOR is not a "binary encoding of JSON".
(It can be used as one, though.)

2) There are many more proposals in this space, and it is hard to draw a line.
E.g. Google protocol buffers is a prominent example.
Bencode is a great one, too.

> An analysis of these might be nice.

Yes.  Find a grad student :-)

Of course, I did my own analysis, but I didn't see a need to write it up.
(More specifically, I didn't see a funding agency interested in this part of reality.
But I'm willing to be surprised :-)

> (While you're at that, and considering variable length encodings of
> things... SQLite4 has some really neat variable length encodings of
> all its data types, specifically designed to make sorting via memcmp()
> possible.  I'm not sure what relevance that might have here, but it
> should be of interest to anyone designing variable length encodings of
> anything.)

If you are looking for a neat variable length encoding of integers designed to sort well, look no further than Appendix A.4 of draft-bormann-coap-misc.
But CBOR wasn't trying to be neat, it is trying to be practical.

> I do agree that we need a schema-less encoding (which means we can't
> get as good as PER and friends).  We probably don't need a
> schema-capable encoding for JSON (though that might be nice).  We do
> need schema-aware encodings for some protocols, but we have plenty
> already, and none are nor need to be JSONish.

I think we are in good agreement here.

Grüße, Carsten