This is a specification for an s-expression interchange format that attempts to improve upon [2]rivest's canonical s-expressions.
It is an output format for a subset of s-expressions. Those containing only pairs and atoms.
It was designed with the following desirable properties in mind:
- It has the canonicity property that
(EQUAL? A B)
implies the DCS output of A is byte equal to the DCS output of B. - It has the non-escaping property that arbitrary binary blobs can be contained as atoms without any processing. A consequence of this is that dcsexps can be nested easily.