Apache™ Thrift är ett program byggt från Apache™ webbserverprogrammeringsplattform. Den är gjord för att generera kod och arbeta med flera kodningsspråk samtidigt. Till skillnad från liknande generatorer, som producerar onödiga mängder kod eller ett tungt fotavtryck, arbetar Apache™ Thrift för att endast inkludera nödvändig kod så att den är transparent. Många stora webbplatser som har behov av flera språk använder Thrift, eftersom det hindrar programmerare från att behöva använda separata program och filer. Thrift kan fungera med 14 kodningsspråk samtidigt, men även om det har många fördelar finns det några saker som det inte kan göra.
Med Apache™ Thrift-plattformen behöver en programmerare inte bygga en komplicerad klient från grunden. Snarare börjar programmeraren bara med att definiera några datatyper. För ett inloggningsskript kan detta innehålla en definition av en användares namn och lösenord.
Efter att ha definierat datatyperna måste programmeraren vanligtvis börja arbeta med att ytterligare definiera dem och lägga till ett stort utrymme med kod. Apache™ Thrift kommer istället att ta den definierade koden och generera den i vilket kodningsspråk programmeraren behöver. Nu behöver programmeraren bara titta igenom den genererade koden och lägga till några rader här och där, istället för att bygga från ingenting.
Från och med maj 2011 kan Apache™ Thrift arbeta med 14 kodningsspråk. Dessa inkluderar: C#, C++, Java®, Python®, Hypertext Preprocessor (PHP), Erlang, Ruby®, Haskell, Perl®, Cocoa®, Node.js, JavaScript®, OCaml och Smalltalk. Detta tillåter programmerare att använda nästan vilket serverbaserat kodspråk som helst för specifika program eller problem, allt under ett program. Detta system gjordes för Facebook® men blev en öppen källkod 2007.
Ett av de största problemen, särskilt för nya användare, är att Apache™ Thrift inte innehåller självstudier eller dokumentation. Detta innebär att programmerare får ta reda på programmet själva. Det här problemet har lösts av många webbplatser som erbjuder handledningar och inlärningsprogram så att personer som är nya i Thrift kan lära sig hur programmet fungerar och hur man genererar kod från plattformen.
Arv, som gör att en programmerare kan skapa objekt med liknande kommandon eller definitioner utan att skriva definitionen för varje objekt, ingår inte i Thrift-plattformen. Detta innebär att polymorfismkodning inte heller är tillåten, eftersom detta beror på arvsfunktionen. Nullfunktioner kan inte användas, och alla metoder och behållare måste ha unika namn, även om olika kodningsspråk används. Annars kan programmet överbelastas.