Apache Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi and other languages.
Key Features:
- Cross-Language: Support for 20+ programming languages
- IDL-Based: Interface Definition Language for service contracts
- Multiple Protocols: Binary, compact, JSON protocols
- Multiple Transports: Socket, HTTP, memory buffer
- Versioning: Built-in support for schema evolution
Common Use Cases:
- Microservices architecture
- Cross-language RPC systems
- Data serialization
- Service-oriented architectures
- Mobile app backend services
Thrift Types:
- Base types: bool, byte, i16, i32, i64, double, string, binary
- Containers: list<T>, set<T>, map<K,V>
- Structs: Complex types with fields
- Enums: Enumerated types
- Services: RPC service definitions
- Exceptions: Structured error types