title: C++ RPC library suggestions
body: <p>I'm looking for suggestions regarding RPC libraries implemented in C++, for C++ developers.</p>
  
  <p>Some requirements constraints:</p>
  
  <ul>
  <li>Should work on both linux/unix and win32 systems</li>
  <li>Be able to execute free function and class methods</li>
  <li>Hopefully written in modern C++ not 90's/java-esque C++</li>
  <li>Be able to function over networks and hetrogenous architectures</li>
  <li>Not too slow or inefficient</li>
  <li>Hopefully provide interfaces for TR1 style std::function's et al.</li>
  </ul>
  
  <p>My example usage is to invoke the free function foo on a remote machine.</p>
  
  <pre><code>---snip---
  // foo translation unit
  int foo(int i, int j)
  {
     return i + j;
  }
  ---snip---
  
  
  ---snip---
  // client side main
  int main()
  {
     //register foo on client and server
     //setup necassary connections and states
  
     int result;
  
     if (RPCmechanism.invoke("foo",4,9,result))
        std::cout &lt;&lt; "foo(4,9) = " result &lt;&lt; std::endl;
     else
        std::cout &lt;&lt; "failed to invoke foo(4,9)!" &lt;&lt; std::endl;
  
     return 0;
  }
  ---snip---
  </code></pre>
  
  <p>Something that can achieve the above or similar would be great.</p>
  
  <p><strong>Note:</strong> I am NOT interested in other language bindings. Please do not proffer a solution because it has other language bindings. I'm only interested in well designed RPC frameworks written in C++ for the C++ language, that are efficient and appropriate for HPC scenarios.</p>