awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
apache avatar

apache/thrift

0
View on GitHub↗
10,933 stars·4,109 forks·C++·Apache-2.0·14 views

Thrift

Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface definition language to specify data types and service interfaces in a neutral format, enabling the automated generation of client and server code across multiple programming languages.

The project functions as a polyglot service communicator using a layered software stack to ensure interoperable communication. It focuses on implementing cross-language remote procedure calls and transforming complex data structures into standardized formats for efficient network transport.

The framework includes capabilities for managing API version compatibility to support non-atomic updates between clients and servers. It also provides mechanisms for verifying data integrity and validating that services behave identically across different language implementations.

Features

  • Cross-Language RPC Frameworks - Provides a comprehensive framework for implementing remote procedure calls that operate across multiple programming languages.
  • Remote Procedure Calls - Implements a remote procedure call framework that allows executing functions on remote servers as if they were local.
  • API Definition Languages - Uses a shared interface definition language to specify API shapes and generate language-specific client and server code.
  • Version-Tolerant Deserializers - Supports non-atomic updates by ignoring unknown fields during binary deserialization, ensuring backward and forward compatibility.
  • Binary Serialization Formats - Provides a compact binary serialization format for efficient network transmission of structured data across multiple languages.
  • Data Serialization Formats - Provides a set of protocols that define how data is encoded and serialized for efficient network transport.
  • Language-Neutral Data Serialization - Provides language-neutral binary serialization for encoding complex data structures independently of specific programming languages.
  • Cross-Language Service Communication - Enables interoperable communication between services written in different languages through shared protocols and definition languages.
  • Multi-Language RPC Services - Supports the creation of RPC services across multiple programming languages using a shared framework.
  • Type Mapping - Translates neutral interface definitions and binary tags into native data types across different programming languages.
  • Data Serialization Formats - Implements tools for converting complex data structures into standardized formats for efficient network transmission across languages.
  • IDL-Based Binding Generators - Generates serialization and deserialization code from interface definition files to automate cross-process communication.
  • Interface Definition Languages - Provides a standardized interface definition language for specifying service contracts and data structures.
  • Remote Service Definitions - Uses a neutral interface definition language to specify data types and services for automated code generation.
  • Protocol Version Compatibilities - Supports non-atomic updates by ensuring newer versions of clients and servers can still communicate with older versions.
  • Data Integrity - Includes mechanisms to ensure data remains accurate and uncorrupted throughout serialization and deserialization cycles.
  • RPC Stub Generation - Automates the creation of client and server stubs for encoding and decoding procedure arguments.
  • Protocol Abstraction Layers - Implements a layered architecture that decouples data transport from protocol serialization and service processing.
  • Protocol-Agnostic Transport Layers - Decouples high-level service logic from underlying network transports like TCP or HTTP via modular abstractions.
  • IDL Compilers - Compiles neutral interface definition files into language-specific source code to automate serialization logic.
  • API Versioning Strategies - Implements architectural patterns for API versioning to maintain service stability as definitions evolve.
  • Interoperability Validation - Validates that remote procedure calls behave identically across multiple language implementations.
  • Language Implementation Validators - Validates that service implementations behave identically across different programming languages through integration tests.
  • Network Communication - Language-independent software stack for RPC implementation.
  • RPC Frameworks - Cross-language RPC framework.
  • Serialization and Communication - Cross-language service development framework.
  • Serialization Protocols - Cross-language RPC and data serialization framework.

Star history

Star history chart for apache/thriftStar history chart for apache/thrift

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does apache/thrift do?

Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface definition language to specify data types and service interfaces in a neutral format, enabling the automated generation of client and server code across multiple programming languages.

What are the main features of apache/thrift?

The main features of apache/thrift are: Cross-Language RPC Frameworks, Remote Procedure Calls, API Definition Languages, Version-Tolerant Deserializers, Binary Serialization Formats, Data Serialization Formats, Language-Neutral Data Serialization, Cross-Language Service Communication.

What are some open-source alternatives to apache/thrift?

Open-source alternatives to apache/thrift include: apache/dubbo-spring-boot-project — This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring… weibocom/motan — Motan is a cross-language RPC framework and distributed service mesh designed for building high-performance… systemsapproach/book — This project is a comprehensive computer networking textbook and instructional resource. It serves as a technical… google/protobuf — Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to… capnproto/capnproto — CapnProto is a zero-copy serialization framework and remote procedure call system. It serves as a C++ communication… alipay/fury — Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to…

Open-source alternatives to Thrift

Similar open-source projects, ranked by how many features they share with Thrift.
  • apache/dubbo-spring-boot-projectapache avatar

    apache/dubbo-spring-boot-project

    5,389View on GitHub↗

    This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring Boot applications. It serves as a microservice communication framework that enables the implementation of RPC services, service discovery, and distributed governance through automated configuration. The project distinguishes itself by providing a cross-language RPC bridge, allowing services written in different languages to communicate via standards such as gRPC and Protobuf. It further enables the exposure of backend microservices as REST endpoints using the Triple protocol for

    Javadubbo
    View on GitHub↗5,389
  • weibocom/motanweibocom avatar

    weibocom/motan

    5,878View on GitHub↗

    Motan is a cross-language RPC framework and distributed service mesh designed for building high-performance distributed services. It functions as a networking layer that manages service discovery, request routing, and traffic distribution across server clusters. The system operates as a cross-datacenter load balancer, distributing requests across multiple clusters and data centers using weighted scheduling. It includes a service discovery registry to automatically locate and link available service instances within a distributed network environment. The framework provides capabilities for dis

    Java
    View on GitHub↗5,878
  • systemsapproach/bookSystemsApproach avatar

    SystemsApproach/book

    3,298View on GitHub↗

    This project is a comprehensive computer networking textbook and instructional resource. It serves as a technical guide for the design and implementation of network layers, protocols, and hardware architecture, covering the spectrum from physical links to application-layer protocols. The content provides a detailed study of standards for congestion control, reliable data delivery, and internetwork routing. It includes specialized technical material on network security, public-key infrastructure, and the operation of modern cloud infrastructure and data centers. The material covers a broad ra

    Python
    View on GitHub↗3,298
  • google/protobufgoogle avatar

    google/protobuf

    71,412View on GitHub↗

    Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro

    C++
    View on GitHub↗71,412
See all 30 alternatives to Thrift→