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

Carsten Bormann <> Thu, 23 May 2013 08:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id AC78711E8155 for <>; Thu, 23 May 2013 01:11:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -106.213
X-Spam-Status: No, score=-106.213 tagged_above=-999 required=5 tests=[AWL=0.036, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id zykFp0P8gst8 for <>; Thu, 23 May 2013 01:11:43 -0700 (PDT)
Received: from ( [IPv6:2001:638:708:30c9::12]) by (Postfix) with ESMTP id 67F7A21F9709 for <>; Thu, 23 May 2013 01:11:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
Received: from ( []) by (8.14.4/8.14.4) with ESMTP id r4N8BcWH001010; Thu, 23 May 2013 10:11:38 +0200 (CEST)
Received: from [] ( []) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id ACD813B58; Thu, 23 May 2013 10:11:37 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
Content-Type: text/plain; charset="iso-8859-1"
From: Carsten Bormann <>
In-Reply-To: <002201ce5781$5ee92b20$1cbb8160$>
Date: Thu, 23 May 2013 10:11:36 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <002201ce5781$5ee92b20$1cbb8160$>
To: "Paul E. Jones" <>
X-Mailer: Apple Mail (2.1503)
Cc: 'Paul Hoffman' <>, 'IETF Apps Discuss' <>
Subject: Re: [apps-discuss] Concise Binary Object Representation (CBOR)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 23 May 2013 08:11:49 -0000

On May 23, 2013, at 08:47, "Paul E. Jones" <> wrote:

> compression

CBOR is not about compression.
It is about compact encoding, achieving reasonable message sizes with reasonable effort.
In many cases, compression is premature optimization.
CBOR only avoids premature pessimization.

Compressed (e.g., via deflate/gzip) JSON works very well for a large number of applications.
CBOR is about generating and consuming data streams with much less complexity.
-- eats CPU and thus energy,
-- creates interoperability problems and other bugs,
-- may not fit into constrained systems.
But these considerations may simply not be the overriding ones for many applications, and LZ77 can achieve efficiencies that a simple serializer can't, so absolutely go ahead and deflate JSON for these.

EXI is not a bad serializer.  
There are a number of weird design decisions in there that I would prefer to avoid.
More importantly, EXI is based on an XML data model; the JSON model is what I'm interested in.
EXI also has to be servant to two masters: schema-informed and schema-less.
Finally, it has a medium (but not severe) case of design by committee.
All this creates a bit more complexity than I like, but, again, it is not nearly as bad as it could be.

Grüße, Carsten