tl;dr If you've got an embedded system (Arduino say) and you need to communicate with it over seiral/USB/etc, Bakelite takes care of all the tedious bits like data serialization, framing, etc...
I wrote this after seeing many people implement their own protocols by hand, or try unsuccessfully to use Google's protobuf on embedded systems. Hopefully people find it useful!