Apache™ Thrift yra programa, sukurta iš Apache™ žiniatinklio serverio programavimo platformos. Jis skirtas generuoti kodą ir dirbti su keliomis kodavimo kalbomis vienu metu. Skirtingai nuo panašių generatorių, kurie sukuria nereikalingą kodo kiekį arba didelį pėdsaką, Apache™ Thrift veikia įtraukdama tik būtiną kodą, kad būtų skaidrus. Daugelyje didelių svetainių, kuriose reikia kelių kalbų, naudojama Thrift, nes ji neleidžia programuotojams naudoti atskirų programų ir failų. Thrift gali dirbti su 14 kodavimo kalbų vienu metu, nors ji turi daug privalumų, yra keletas dalykų, kurių ji negali padaryti.
Naudojant Apache™ Thrift platformą, programuotojui nereikia kurti sudėtingo kliento nuo nulio. Atvirkščiai, programuotojas tiesiog pradeda apibrėždamas keletą duomenų tipų. Prisijungimo scenarijuje tai gali apimti vartotojo vardo ir slaptažodžio apibrėžimą.
Apibrėžęs duomenų tipus, programuotojas dažniausiai turi pradėti toliau juos apibrėžti ir pridėti didelę kodo erdvę. Vietoj to „Apache™ Thrift“ paims apibrėžtą kodą ir sugeneruos jį bet kokia programuotojui reikalinga kodavimo kalba. Dabar programuotojas tiesiog turi peržvelgti sugeneruotą kodą ir pridėti keletą eilučių čia ir ten, o ne kurti iš nieko.
2011 m. gegužės mėn. „Apache™ Thrift“ gali dirbti su 14 kodavimo kalbų. Tai apima: C#, C++, Java®, Python®, Hypertext Preprocessor (PHP), Erlang, Ruby®, Haskell, Perl®, Cocoa®, Node.js, JavaScript®, OCaml ir Smalltalk. Tai leidžia programuotojams naudoti beveik bet kurią serverio kodavimo kalbą, reikalingą konkrečioms programoms ar problemoms spręsti, visa tai vienoje programoje. Ši sistema buvo sukurta Facebook®, bet 2007 m. tapo atvirojo kodo programa.
Viena didžiausių problemų, ypač naujų naudotojų, yra ta, kad „Apache™ Thrift“ savaime neapima mokymo programų ar dokumentacijos. Tai reiškia, kad programuotojams belieka patiems išsiaiškinti programą. Šią problemą išsprendė daugelis svetainių, siūlančių mokymo programas ir mokymosi programas, kad žmonės, pradedantys Thrift, galėtų sužinoti, kaip programa veikia ir kaip generuoti kodą iš platformos.
Paveldėjimas, leidžiantis programuotojui kurti objektus su panašiomis komandomis ar apibrėžimais, neįrašant kiekvieno objekto apibrėžimo, nėra įtrauktas į Thrift platformą. Tai reiškia, kad polimorfizmo kodavimas taip pat neleidžiamas, nes tai priklauso nuo paveldėjimo ypatybės. Nulinių funkcijų naudoti negalima, o visi metodai ir konteineriai turi turėti unikalius pavadinimus, net jei naudojamos skirtingos kodavimo kalbos. Priešingu atveju programa gali perkrauti.