A high-performance, extensible Go RPC framework for building microservices with built-in service governance.
Kitex is a high-performance and strongly extensible Go RPC framework designed for building microservices. It solves the need for efficient, scalable service-to-service communication with built-in service governance features like load balancing, circuit breaking, and monitoring. The framework supports multiple protocols including Thrift, Kitex Protobuf, and gRPC.
Go developers and engineering teams building scalable microservice architectures, particularly those prioritizing performance and customization in service communication.
Developers choose Kitex for its exceptional performance via Netpoll integration and its extensive extensibility, allowing deep customization of almost every component. It provides a comprehensive, production-ready solution out-of-the-box while remaining adaptable to specific architectural needs.
Go RPC framework with high-performance and strong-extensibility for building micro-services.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates Netpoll for superior performance over standard Go net, as evidenced by dedicated benchmarks in the kitex-benchmark project.
Provides numerous interfaces for middleware, codec, and transport, allowing deep framework adaptation to specific architectural needs.
Includes modules for discovery, load balancing, circuit breaking, and monitoring, reducing reliance on external tools for production-ready systems.
Supports Thrift, Kitex Protobuf, and gRPC, with extensibility for custom protocols, catering to diverse messaging requirements.
One-way streaming is only available for Thrift protocol, restricting flexibility when using other protocols like gRPC or custom ones.
Kitex Protobuf is a proprietary format, which may create interoperability issues with standard Protobuf-based systems and tools.
High extensibility requires significant setup and understanding of the framework's architecture, increasing the initial learning curve.