ION -- Yet another binary format for structured data yaay!

IAP Object Notation

https://www.infoq.com/articles/IAP-Fast-HTTP-Alternative
@clacke noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

@clacke @djsundog what would be the most used standard now?

Protobuf?

@Balor @clacke that'd be my guess but it'd be just a guess
@balor @djsundog In terms of total data transfer? I would assume XML if one doesn't insist on binary. After that JSON? After that maybe BSON, because all the hipster systems run on MongoDB? Otherwise ASN.1 because it's in a whole bunch of protocols, including TLS, but depends what one includes in "binary format for structured data". ASN.1 is not self-describing, both sides need to pre-agree on the schema.

And then there's bencode, powering the protocol driving most of the data use on many parts of internet.

The format people should probably be using if they didn't have any particular requirements is CBOR, because it's an RFC. The awesomest one is probably Cap'n'Proto, because it's the Second System by a person who helped make Protobuf and learned from its mistakes.

Of course some people use netstrings, because they're a DJB specification.
In case I didn't throw in enough uncertainty qualifiers: Totally a big fat bunch of guesses, of course. I don't know who would have reasonable data on this.

@djsundog @clacke

Thanks for the description. I'm so used to JSON that I tend to forget all the other options when using binary formats.

Cap'n'Proto, I'll go check that one.

@balor @djsundog https://capnproto.org/ was designed as part of the work of creating https://sandstorm.io/ , which in itself is a really interesting protocol. And the CnP page is fun to read.
@clacke Looks pretty decent, might check it out sometime.
Dunno which part of my brain popped out "protocol" there, it's not the best word for Sandstorm. It's a framework, a service, a deployment model, a distribution model, and, yes, I guess you'd have to say there's a protocol mediating the communication between the front-end and the application.
@djsundog @balor Apparently there is also http://bjson.org/ . They list half of the formats I mentioned and also others, so I guess they must have figured they had really good reasons for creating Yet Another Binary JSON.
Ah, of course, ProtoBuf and Cap'n'Proto aren't self-describing either, because they're concerned with on-the-wire efficiency. So remove my caveats about ASN.1, it's totally in the same league with them. Or, if you prefer, add caveats for those two as well. :-)
Of course https://thrift.apache.org/ (not self-describing).
And then there is a whole forest of binary XMLs. https://en.wikipedia.org/wiki/Fast_Infoset is one.
I don't get at a glance whether https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling is self-describing or not. And I don't get how dicts work. It would make sense to be following some schema, and they talk about some things being introspectable and some not.

Anybody know d-bus wire format?
#sbe is not self-describing:

> To use SBE it is first necessary to define a schema for your messages.
#flatbuffers looked not-self-describing at first, but:

> If you do need to store data that doesn't fit a schema, FlatBuffers also offers a schema-less (self-describing) version!

https://google.github.io/flatbuffers/

Huh, that's pretty cool.
FlatBuffers: FlatBuffers