Если вы считаете, что документация файлов Java .class является хорошим примером спецификации, пересмотрите взгляд на Preon. Preon захватывает его полностью и генерирует документацию наподобие this .
На самом деле есть несколько других инициатив для захвата «синтаксиса» двоичных кодированных файлов. ASN.1 полезен, но он не даст вам большого пробега, если вы собираетесь захватывать, скажем, файлы классов Java. То же самое касается BSDL, Flavor, BFlavor и нескольких других инициатив. Проблема в том, что существует миллион способов кодирования двоичных данных, множество методов двоичного сжатия, и я думаю, это означает, что никогда не будет чем-то, что захватит его полностью, если только сам язык не расширяемый.
Буферы протокола Google в основном имеют ту же проблему. Он определяет что-то вроде CDR Корбы, и это хорошо, если вам не нужно что-то более продвинутое. Буферы протокола Google не позволят вам захватить формат файла класса Java.