title: Choose a Remote procedure call c++ library
body: <p>I have to rewrite an old "proprietary" client-server protocol in a standard way.<br>
  I'm looking for an abstract notation to define the protocol and a cross-platform implementation library.</p>
  
  <p>I tempted to use ASN.1 because its a well defined standard, but it seems to lack in free implementations, though there are some very good commercial tools like Oss Nokava and Objective-System
  <p>For now I found the free <a href="http://www.ncbi.nlm.nih.gov/books/NBK7197/" rel="nofollow">NCBI C++ Toolk</a> which seems interesting because it has a ASN.1 "class generator" and its implementation.</p>
  
  <p>The others solutions I found are:</p>
  
  <ul>
  <li>ICE</li>
  <li>Thrift</li>
  <li>MessagePack</li>
  <li>Protocol Buffers</li>
  </ul>
  
  <p><a href="http://distributedsenses.blogspot.it/2012/03/there-are-various-flavors-of-rpc.html" rel="nofollow">Here</a> I found a comparison table.<br>
  These have pro and cons and so I'm here to ask if someone have had experiences and could give me some suggestions.</p>
  
  <p>Regards, Daniele.</p>