296 Reads
·
222 Citations
Thrift is a software library and set of code-generation tools devel-oped at Facebook to expedite development and implementation of efficient and scalable backend services. Its primary goal is to en-able efficient and reliable communication across programming lan-guages by abstracting the portions of each language that tend to require the most customization into a common library that is imple-mented in each language. Specifically, Thrift allows developers to define datatypes and service interfaces in a single language-neutral file and generate all the necessary code to build RPC clients and servers. This paper details the motivations and design choices we made in Thrift, as well as some of the more interesting implementation details. It is not intended to be taken as research, but rather it is an exposition on what we did and why.