title: Why protobuf is bad for large data structures?
body: <p>I'm new to protobuf. I need to serialize complex graph-like structure and share it between C++ and Python clients. 
  I'm trying to apply protobuf because:</p>
  
  <ul>
  <li>It is language agnostic, has generators both for C++ and Python</li>
  <li>It is binary. I can't afford text formats because my data structure is quite large</li>
  </ul>
  
  <p>But Protobuf user guide says: </p>
  
  <blockquote>
    <p>Protocol Buffers are not designed to handle large messages. As a
    general rule of thumb, if you are dealing in messages larger than a
    megabyte each, it may be time to consider an alternate strategy.</p>
  </blockquote>
  
  <p><a href="https://developers.google.com/protocol-buffers/docs/techniques#large-data" rel="noreferrer">https://developers.google.com/protocol-buffers/docs/techniques#large-data</a></p>
  
  <p>I have graph-like structures that are sometimes up to 1 Gb in size, way above 1 Mb.</p>
  
  <p>Why protobuf is bad for serializing large datasets? What should I use instead?</p>