Facebook's Cross-Language Network Library 104
koreth writes "Facebook has released Thrift, a toolkit for making remote method calls. It generates interoperable network code in C++, Java, PHP, Python, and Ruby. Its protocol is much more lightweight (and probably much higher-performance) than SOAP or CORBA. Facebook uses it internally for high-traffic services like search. The license is extremely permissive."
Re:Ohhh, goody (Score:1, Informative)
Re:potential privacy concern? (Score:1, Informative)
The license (Score:5, Informative)
Re:potential privacy concern? (Score:4, Informative)
Re:Facebook is releasing this? (Score:4, Informative)
As a college student, I love Facebook. I use it to keep up with high school friends, keep in contact with people from the school I transfered from, know the people in my classes so I can throw questions at them if I have one, and since I am bad with names it is a great tool to remember people by!
The information I have on Facebook you could probably [wikipedia.org] find [nickcatalano.com] elsewhere [google.com]. But having such a clean interface is great. and their improvements are going to be great [facebook.com] (membership required)
Re:Ohhh, goody (Score:3, Informative)
XML is a standard for heavyweight text type communication.
ASN.1 BER encoding is a standard for lightweight binary communication (similar to this Thrift crap except ASN.1 is an ISO standard and used everywhere).
Any RPC method worth its salt would use one of those.
Re:OT: A good C++ RPC library without code generat (Score:1, Informative)
Or roll your own with boost::asio - http://tinyurl.com/2zpbfd [tinyurl.com], though I think a boost library is already in progress
Re:Ohhh, goody (Score:4, Informative)
I've worked with CORBA at my last three jobs, and I've been pretty happy with it. I've used OmniORB, Orbacus, JacORB and MICO - all of which work very well, although the licensing cost of Orbacus puts it out of reach for most of the things I work on. I do have to wrap a lot of the C++ stuff in helper classes though, as the mapping for that language is far too baroque. One of the consultants at IONA has produced an open source CORBA utilities library [ciaranmchale.com] that which is far more extensive than my one.
Re:Facebook is releasing this? (Score:3, Informative)
http://www.comscore.com/press/release.asp?press=1
Hmm, seems 12-17 year olds only make up 14% of Facebook users.
Re:OT: A good C++ RPC library without code generat (Score:3, Informative)
Yes, CORBA. You can do DII (Dynamic Interface Invocation) on the client side, and DSI (Dynamic Skeleton Interface) on the server-side. You are never required to use generated code with CORBA. OTOH, the amount of code that you will have to write using DII/DSI is large (not as large as the generated code would be, but large), and usually a PITA. BTW, you can mix and match with a dynamic client talking to a static (generated) server. You can even have some dynamic clients and some static clients using the same server.
I have been programming CORBA-based systems for eight years, and only one time did DII make a lot of sense (I extended a COS-standard service, and I didn't want to generate/maintain a custom set of stubs for the clients).
Re:Pretty low level, but interesting (Score:4, Informative)
There's no good reason to make a separate timestamp class; an int64 is plenty big enough to hold microseconds (or nanoseconds, even) since the epoch.
Re:potential privacy concern? (Score:2, Informative)