Thrift is a descriptive format that describes a service with all the inputs/outputs. The real strength is the ability to then generate language stubs for a variety of languages and have different applications communicate each-other.

Thrift was donated to the open-source community by Facebook.

Thrift provides a very simple API descriptor file that can be used to generate client/server stubs in a variety of languages.

Writing XML interfaces for data exchange is pretty heavy with a lot of processing and bandwidth.

One solution I was using for interfacing between Java/PHP applications was an implementation of native PHP serialized format in Java. I could use reflection to generate PHP stubs.

I wasn't too wild about using Java rmi, and discovered thrift, which was a perfect fit. I now have a variety of thrift based servers that I can access from multiple runtime environments.