Take a look at FlexBuffers, part of FlatBuffers. FlatBuffers itself is similar to CapnProto and requires a schema, but FlexBuffers is a related schema-less format that uses a bunch of the encoding techniques from FlatBuffers to gain advantages like (I believe) not having to parse unneeded substructures.