Chris Metcalf bio photo

Chris Metcalf

Twitter Facebook LinkedIn Instagram GitHub Stack Overflow Photography

Facebook, the social networking site, has released a critical piece of their infrastructure, code-named “Thrift” as Open Source:

Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, and Ruby. Thrift was developed at Facebook, and we are now releasing it as open source

Those of you who aren’t software engineering nerds like me and haven’t spent the last year and a half elbow-deep inside one of the world’s largest service oriented architectures might not realize how huge that is.


When you set out to build a large distributed system, the first question you have to answer is how you’re going to glue it all together, especially if you don’t want to have to use the same language everywhere. You could use something standard like XML-RPC or SOAP, but XML is slow and sometimes inflexible. And you don’t really care about interoperability with third-party systems - you just want to be able to connect your pieces together. And what about server frameworks? Do you really want to have to implement all those annoying little bits like configuration and logging for every language you want to use?

What you really need is one standard framework for everything. Thrift provides this. Define your service APIs in a common language and the framework automatically creates bindings for every language you’d want to use, along with service code in your chosen language.

Very cool. If I manage to find some free time I’ll be sure to play with it some more.