Thrift wspiera wiele protokołów: TBinaryProtocol – binarny format typu straight-forward kodujący wartości liczbowe jako binarne. Jest szybszy niż protokół tekstowy, aczkolwiek o wiele trudniejszy do debugowania. TCompactProtocol – bardzo wydajny w gęstym kodowaniu danych. TDebugProtocol – używa tekstu w formacie czytelnym dla człowieka, aby ułatwić debugowanie. TDenseProtocol – podobny do TCompactProtocol, rozkłada meta informacje od tego co jest przekazywane. TJSONProtocol – używa JSON do kodowania danych. TSimpleJSONProtocol – protokół zapisu używający JSON. Przydatny do parsowania przez języki skryptowe.

Jak również wiele transportów: TFileTransport – zapis do pliku TFramedTransport – wymagany przy użyciu nieblokującego serwera. Wysyła dane w ramkach, gdzie każda ramka jest poprzedzona informacją o długości. TMemoryTransport – używa pamięci dla we/wy. Implementacja Java używa prostego ByteArrayOutputStream wewnętrznie. TSocket – używa blokującego gniazda we/wy do transportu. TZlibTransport – przeprowadza porównanie używając zlib. Używany w połączeniu z innym transportem. nie dostępny w implementacji Java.