Apache Thrift is a software framework for scalable cross-language services development. It allows you to build services that work efficiently and seamlessly between C++, C#, Java, Python, Ruby, PHP and Perl. It could be used by a smart proxy, to talk to a service written in another programming language. It can also be utilized to make a Jini service available to another programming language, where the Jini service uses a defined subset of built in java language objects. The need for high performance, reliable communication across different programming languages seems to be growing more and more common in modern programming, particularly when writing software for the web. Historically, this problem has forced developers to standardize on one language/framework or adopt heavier-weight systems, such as CORBA or SOAP. These systems tend to make tradeoffs that aren’t always ideal for the use case. SOAP, for example, may be ideal for calling across disparate web services, but is unnecessarily verbose for service calls on an intranet. Most of these systems also require developers to learn the particulars of their type systems, especially when dealing with containers or objects. One of the primary goals of Thrift is to allow developers to program across languages while still using the standard idioms and style in each language. Custom type systems also make code reuse more difficult. Thrift allows developers to avoid creating unnecessary wrapper interfaces by operating directly on native types. Thrift solves the same problem as pretty much any other remote procedure call (RPC) system. Among RPC systems, I’d say it’s notable because it works easily with over a dozen different languages and is fairly transport agnostic (you could use it over TCP, HTTP, or whatever else you like). Some care is also taken to be byte efficient, so it’s not as heavy as something XML-based like SOAP or XML-RPC. It also adds a lot of value having a single file to describe the shared protocol. This session covers the interesting implementation details of the Apache thrift and highlights the various challenges of cross-language interaction in a networked environment. Also talks about the benefits of using Thrift over SOAP and CORBA technologies. This session will also help the user to understand its application with some real time application.
VideoHarshad Oak interviewed by Arun Gupta at conference 2009 about IndicThreads & the conference on Java