Facebook's evolved branch of Apache Thrift, featuring a new C++ compiler and fully asynchronous server for high-performance RPC and serialization.
Facebook Thrift is an open-source serialization and remote procedure call (RPC) framework evolved from Apache Thrift. It provides a code generator, serialization protocols, and an RPC framework to enable efficient service communication across multiple programming languages. It solves the problem of building high-performance, cross-language services with features like backwards compatibility and a fully asynchronous C++ server.
Developers and engineers building distributed systems, microservices, or storage systems that require efficient cross-language communication, particularly those using C++, Python, Hack, or Java.
Developers choose Facebook Thrift for its performance-optimized design, fully asynchronous C++ server, strong cross-language support, and Facebook's internal evolution of the Thrift framework, which includes a rewritten compiler and enhanced capabilities over the original Apache version.
Facebook's branch of Apache Thrift, including a new C++ server.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Features a fully asynchronous C++ server optimized for efficient RPC, as detailed in the ThriftServer documentation, enabling scalable service communication.
Seamlessly supports communication between languages like Python clients and C++ servers, solving cross-language service challenges with generated stubs.
Allows fields to be added or removed from serializable types while preserving compatibility, essential for long-running systems with evolving schemas.
Generates serializable data structures and RPC stubs in multiple languages, reducing boilerplate and letting developers focus on system schemas and interfaces.
Requires installing numerous dependencies, including Facebook-specific libraries like Folly and Wangle, and using custom scripts like getdeps.py, which complicates setup and integration.
Heavily relies on Facebook's internal libraries (e.g., Fizz, Folly), which may not be as well-documented or supported outside Facebook's environment, increasing vendor risk.
Focuses on strong support for C++, Python, Hack, and Java, with weaker or no official support for other popular languages like Go or Rust, limiting flexibility.