You might spend a little more saying what makes your approach unique:
"Use text based formats that are bloated and slow, or use binary formats that humans can't read. Wouldn't it be nice to have the benefits of both, and none of the drawbacks?"
NeXT/Apple property lists have had that feature for decades now, with multiple text and binary serialization formats.[1]
Infra [2] also makes very similar claims "Existing metaformats fit neatly into two categories. They are either textual for human-readability (such as XML and JSON) or binary for compact serialization (such as Thrift and Protocol Buffers). Infra can play the role of either, imbuing each with the desirable properties of the other."
Property lists came very close, but still suffer from a number of issues:
- The binary format is not efficiently packed. For example, Concise Encoding uses 200 of the 256 codes to directly encode integers (-100 to 100) since they are the most common data values in the wild (along with short strings, which also have their own special encoding).
- There's no array type (as in contiguous objects of the same type and size)
- Dates are in seconds, not Gregorian fields, and have no time zones.
- Binary data in the text format is base64 encoded, ensuring that it's 100% unreadable in its raw form.
- Container types are prepended with a length field, making progressive construction impossible.
Infra looks interesting, but it strays from editable text into a kind of hybrid format that requires a specialized editor to read and write. This would only work if such editors became ubiquitous, which is unlikely. I ran down this path for awhile as well, but finally decided against it.
You might spend a little more saying what makes your approach unique:
"Use text based formats that are bloated and slow, or use binary formats that humans can't read. Wouldn't it be nice to have the benefits of both, and none of the drawbacks?"
NeXT/Apple property lists have had that feature for decades now, with multiple text and binary serialization formats.[1]
Infra [2] also makes very similar claims "Existing metaformats fit neatly into two categories. They are either textual for human-readability (such as XML and JSON) or binary for compact serialization (such as Thrift and Protocol Buffers). Infra can play the role of either, imbuing each with the desirable properties of the other."
[1] https://en.wikipedia.org/wiki/Property_list
[2] http://www.christopherkhall.com/research.html