I am looking to use a RPC framework for internal use. The framework has to be cross language. I am exploring Apache Thrift right now. Google protocol Buffers does not provide RPC capabilities exactly. What are the choices I have got apart from Thrift. (my servers will be primarily Java and the clients will be Java, Python, PHP).
Asked
Active
Viewed 5,607 times
10
-
After Exploring a bit, and looking at all the options available along with the Documentation, I prefer Thrift. Waiting for Message Pack to be more mature – sheki Sep 17 '10 at 12:01
-
Curious tho what exactly are you looking with RPC over very simple request/response handling ("REST"); for example simple HTTP+JSON combination works rather well, convenient, performance, simple. So what would a framework like thrift, PB, Hessian or others buy you? – StaxMan Oct 28 '10 at 06:12
-
Thrift is definitely faster and lighter than the HTTP/JSON approach. More requests can be served using Thrift than HTTP+JSON/XML. So Thrift is a good choice for internal services. REST approach may be best for external APIs – sheki Oct 31 '10 at 03:54
3 Answers
4
There is also MessagePack which claims to be faster than Protocol Buffers and have more features than Thrift.

sheki
- 8,991
- 13
- 50
- 69
-
6To be honest, performace differences between PB, Thrift and alternatives seldom matter a lot -- they are all fast enough for most uses. – StaxMan Oct 28 '10 at 06:14
2
I would look at REST as a first option because it is ubiquitous and no-nonsense.
If performance and representation really needs to be compact, I have heard good things about Apache AVRO and my fingers are twitching to try it out in anger.

Peter Tillemans
- 34,983
- 11
- 83
- 114
-
AVRO seems interesting. Well REST vs RPC debate is over and I am looking for RPC alternatives – sheki Sep 02 '10 at 07:39
-
Well in first look, AVRO does not seem to support PHP out of the box. That might be an issue for us. – sheki Sep 02 '10 at 08:13
-
I didn't find a RPC implementation in the Avro C++ source, did I miss anything? – dalle Mar 30 '11 at 10:01
-
From https://issues.apache.org/jira/browse/AVRO-777 it seems that at least C support is well underway. – Peter Tillemans Mar 30 '11 at 17:38
1