Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>One major consideration is "do you want to have to specify each structure definition"</strong>? </p> <p>If you are OK with that, then you could take a look at:</p> <ol> <li><a href="http://code.google.com/apis/protocolbuffers/docs/overview.html" rel="noreferrer">Protocol Buffers - http://code.google.com/apis/protocolbuffers/docs/overview.html</a></li> <li><a href="http://developers.facebook.com/thrift/" rel="noreferrer">Thrift - http://developers.facebook.com/thrift/</a> (more geared toward services)</li> </ol> <p>Both of these solutions require supporting files to define each data structure. </p> <hr> <p>If you would prefer not to incur the developer overhead of pre-defining each structure, then take a look at:</p> <ol> <li>JSON (via python cjson, and native PHP json). Both are really really fast if you don't need to transmit binary content (such as images, etc...).</li> <li>Yet Another Markup Language @ <a href="http://www.yaml.org/" rel="noreferrer">http://www.yaml.org/</a>. Also really fast if you get the right library.</li> </ol> <p>However, I believe that both of these have had issues with transporting binary content, which is why they were ruled out for our usage. <strong>Note:</strong> YAML may have good binary support, you will have to check the client libraries -- see here: <a href="http://yaml.org/type/binary.html" rel="noreferrer">http://yaml.org/type/binary.html</a></p> <hr> <p>At our company, we rolled our own library (Extruct) for cross-language serialization with binary support. We currently have (decently) fast implementations in Python and PHP, although it isn't very human readable due to using base64 on all the strings (binary support). Eventually we will port them to C and use more standard encoding.</p> <p>Dynamic languages like PHP and Python get really slow if you have too many iterations in a loop or have to look at each character. C on the other hand shines at such operations.</p> <p>If you'd like to see the implementation of Extruct, please let me know. (contact info at <a href="http://blog.gahooa.com/" rel="noreferrer">http://blog.gahooa.com/</a> under "About Me")</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload