Apache™ Thrift je program izgrađen od programske platforme Apache™ web poslužitelja. Napravljen je za generiranje koda i rad s više jezika kodiranja odjednom. Za razliku od sličnih generatora, koji proizvode nepotrebne količine koda ili veliki otisak, Apache™ Thrift radi tako da uključuje samo potreban kod kako bi bio transparentan. Mnoga velika web-mjesta koja imaju potrebu za više jezika koriste Thrift, jer sprječava programere da moraju koristiti zasebne programe i datoteke. Thrift može raditi s 14 jezika kodiranja odjednom, no, iako ima mnogo prednosti, postoji nekoliko stvari koje ne može učiniti.
Uz Apache™ Thrift platformu, programer ne mora graditi komplicirani klijent od nule. Umjesto toga, programer samo počinje definiranjem nekoliko tipova podataka. Za skriptu za prijavu, to može uključivati definiciju korisničkog imena i lozinke.
Nakon definiranja tipova podataka, programer obično mora početi raditi na njihovom daljnjem definiranju i dodavanju velikog prostora koda. Apache™ Thrift će umjesto toga uzeti definirani kod i generirati ga u bilo kojem kodnom jeziku koji programeru treba. Sada programer samo mora pregledati generirani kod i dodati nekoliko redaka tu i tamo, umjesto da gradi iz ničega.
Od svibnja 2011. Apache™ Thrift može raditi s 14 jezika za kodiranje. To uključuje: C#, C++, Java®, Python®, Hypertext Preprocessor (PHP), Erlang, Ruby®, Haskell, Perl®, Cocoa®, Node.js, JavaScript®, OCaml i Smalltalk. To omogućuje programerima korištenje gotovo bilo kojeg poslužiteljskog jezika kodiranja koji je potreban za određene programe ili probleme, sve u jednom programu. Ovaj je sustav napravljen za Facebook®, ali je 2007. postao aplikacija otvorenog koda.
Jedan od najvećih problema, posebno za nove korisnike, je taj što Apache™ Thrift inherentno ne uključuje tutorijale ili dokumentaciju. To znači da je programerima prepušteno da sami shvate program. Ovaj problem riješila su mnoga web-mjesta koja nude tutorijale i programe učenja tako da ljudi koji su novi u Thriftu mogu naučiti kako program radi i kako generirati kod s platforme.
Nasljeđivanje, koje omogućuje programeru da napravi objekte sa sličnim naredbama ili definicijama bez pisanja definicije za svaki objekt, nije uključeno u Thrift platformu. To znači da ni kodiranje polimorfizma nije dopušteno, jer to ovisi o značajki nasljeđivanja. Null funkcije se ne mogu koristiti, a sve metode i spremnici moraju imati jedinstvena imena, čak i ako koriste različite jezike kodiranja. Inače se program može preopteretiti.