Re: [Cbor] Packed CBOR review

Christian Amsüss <> Fri, 18 June 2021 16:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C80303A16E1 for <>; Fri, 18 Jun 2021 09:18:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id otqnuG_bza3X for <>; Fri, 18 Jun 2021 09:17:58 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 291053A16B5 for <>; Fri, 18 Jun 2021 09:17:57 -0700 (PDT)
Received: from (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by (Postfix) with ESMTPS id 4607D408B8; Fri, 18 Jun 2021 18:17:55 +0200 (CEST)
Received: from ( [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by (Postfix) with ESMTP id 0AD06D7; Fri, 18 Jun 2021 18:17:53 +0200 (CEST)
Received: from (unknown [IPv6:2a02:b18:c13b:8010:14:5625:3c22:75e]) by (Postfix) with ESMTPSA id C7A637D; Fri, 18 Jun 2021 18:17:52 +0200 (CEST)
Received: (nullmailer pid 756933 invoked by uid 1000); Fri, 18 Jun 2021 16:17:52 -0000
Date: Fri, 18 Jun 2021 18:17:52 +0200
From: Christian Amsüss <>
To: "" <>
Cc: Brendan Moran <>, Carsten Bormann <>
Message-ID: <>
References: <> <> <> <>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="MY8u3Ndy6oFwCMj6"
Content-Disposition: inline
In-Reply-To: <>
Archived-At: <>
Subject: Re: [Cbor] Packed CBOR review
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 18 Jun 2021 16:18:01 -0000

Hello CBOR group,

we've just spent some time discussing the use of packed CBOR in CoRAL,
and the current working assumptionis that we'll use the very same

That means we'll do some practical exploration with something similar to
both setup formats that are currently around:

> Spiffy-Standard-A-Table-Setup = #6.4711(any)
> Table-Setup-Uri = #6.52([Uri-reference, any])

and see how it applies there.

One thing we'll probably keep of our older designs is the bounded
import: Previously we described our data source tables as lists of
(source, first-import, last-import) where the latter two are numeric and
allow picking just a slice of the external dictionary. This has two

* It keeps the number of (efficient) low-number imports slow -- if you
  need two of here and two of there, you can express all of them in
  single bytes even though both dictionaries may contain 20 items each.

* It provides extensibility. That's even practical on non-extensible
  dicts (as a consumer might make sense of the document not knowing how
  many items are in there), and more so with extensible dicts (which of
  course can only be extensible by adding more entries but not by
  mutating earlier ones, that'd be a recipe for desaster).

Hoping for a frugal exchange of ideas and experiments

To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom