Repolode
apache

apache/thrift

A language-independent RPC framework with a code generator that builds interoperable clients and servers across many programming languages.

Open-source alternative to:gRPCProtocol Buffers

Stars
10,958
Forks
4,116
Open issues
29
Last commit
15 hours ago

What is it?

Apache Thrift is a lightweight software stack for point-to-point remote procedure calls. It provides abstractions for data transport, data serialization and application-level processing, along with a code generator that takes a simple interface definition language and produces client and server code in many languages.

Thrift supports 28 programming languages, so services written in different languages can exchange data and call each other's methods. It is designed so that a server can be upgraded without breaking older clients, and newer clients can talk to older servers, which eases API versioning.

The compiler is implemented in C++, and the repository includes language libraries, test suites with cross-language tests, and a tutorial. Builds are done with Autotools or Docker.

Key features

  • 01Code generation for clients and servers from a simple definition language
  • 02Support for 28 programming languages
  • 03Pluggable data transport and serialization layers
  • 04Designed for compatibility across non-atomic version upgrades
  • 05Cross-language test suite included

Use cases

  • Building microservices that are written in different languages and need to call each other
  • Exposing a stable RPC API that must keep serving older clients during upgrades
  • Sharing data structures between a C++ backend and clients in other languages

Quick start

  1. 1

    Generate the configure scripts (only needed when building from the source repository, not a tarball)

    ./bootstrap.sh
  2. 2

    Configure the build; use --with-boost if Boost is in a non-standard location

    ./configure
  3. 3

    Build Thrift

    make
  4. 4

    Install Thrift as superuser

    make install

Things to know

  • Building from source requires autotools and prerequisites such as Boost, listed in the install docs (which may be stale).
  • Some language libraries, such as Java, Ruby and PHP, must be installed manually with their own build tools.

Topics

FAQ

What is thrift?
A language-independent RPC framework with a code generator that builds interoperable clients and servers across many programming languages. Apache Thrift is a lightweight software stack for point-to-point remote procedure calls. It provides abstractions for data transport, data serialization and application-level processing, along with a code generator that takes a simple interface definition language and produces client and server code in many languages.
Is thrift free to use? What license does it have?
thrift is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is thrift still maintained?
Actively maintained. The last commit to thrift was on Oct 21, 2026.
What can I use thrift for?
Building microservices that are written in different languages and need to call each other Exposing a stable RPC API that must keep serving older clients during upgrades Sharing data structures between a C++ backend and clients in other languages
How do I install thrift?
Generate the configure scripts (only needed when building from the source repository, not a tarball): ./bootstrap.sh Configure the build; use --with-boost if Boost is in a non-standard location: ./configure Build Thrift: make Install Thrift as superuser: make install
Where can I get thrift?
The source code and installation instructions are on GitHub: https://github.com/apache/thrift

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects