yfakariya edited this page May 27, 2012 · 5 revisions

MessagePack RPC for CLI (Common Language Infrastructure) is a binding of the MessagePack RPC for CLI. That is, this is not only a binding for C#,but also is able to be used from Visual Basic, F#, PowerShell, Iron Python, Iron Ruby, and so on. Currently supported runtime is only Full CLR(v4.0 or above, including client profile), but drops for Silverlight(v4 or v5), Mono and Windows Phone Runtime(v7.1) is available. Note that there are no automated test suite for 'not supported' projects.



  • Fully asynchronous client/server.
  • De facto error specification support.
  • Fine trace messages to help debugging.
  • Dynamic object based out-of-box proxy.


If you are interesting for core (serialization) library MessagePack for CLI more detail, please see serialization library's wiki.

Scheduled Features

Any idea?

  • IDL support. It is convenient to implement early draft of MessagePack IDL. There is excellent implementations on the Haskell binding, but it cannot use CodeDOM API so I have to implement many generators for CLI languages...
  • Multi version support. There is a new draft for RPC to support multi versioning.


  • Q Are there IDLs?

    • A No, it will be implemented in the future.
  • Q Why does the RpcClient class provide both of task based and APM?

    • A I think that Task is not ideal for non-blocking async operation now, because it always wraps exceptions as AggregatedException which is suitable for parallel operation. In .NET 4.5, however, will introduce the solution, the ExceptionDisatchInfo, as well as cool Awaiter methods. So I decides supporting both patterns.
  • Q Can I use in WCF stack?

    • A Maybe but not supported yet. Please tell me you want to do it.
  • Q Can I host in IIS/WAS?

    • A No.

See also