I settled on using ZeroMQ + MessagePack to glue together my Python, Ruby, and C++ components, but haven't yet decided whether to use an existing RPC protocol or roll my own. ZeroRPC looks like a good candidate.