- Notifications
You must be signed in to change notification settings - Fork839
Go RPC framework with high-performance and strong-extensibility for building micro-services.
License
cloudwego/kitex
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
English |中文
Kitex [kaɪt'eks] is ahigh-performance andstrong-extensibility Go RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice.
- High Performance
Kitex integratesNetpoll, a high-performance network library, which offers significant performance advantage overgo net.
- Extensibility
Kitex provides many interfaces with default implementation for users to customize. You can extend or inject them into Kitex to fulfill your needs (please refer to the framework extension section below).
- Multi-message Protocol
Kitex is designed to be extensible to support multiple RPC messaging protocols. The initial release contains support forThrift,Kitex Protobuf andgRPC, in which Kitex Protobuf is a Kitex custom Protobuf messaging protocol with a protocol format similar to Thrift. Kitex also supports developers extending their own messaging protocols.
- Multi-transport Protocol
For service governance, Kitex supportsTTHeader andHTTP2. TTHeader can be used in conjunction with Thrift and Kitex Protobuf.
- Multi-message Type
Kitex supportsPingPong,One-way, andBidirectional Streaming. Among them, One-way currently only supports Thrift protocol.
- Service Governance
Kitex integrates service governance modules such as service registry, service discovery, load balancing, circuit breaker, rate limiting, retry, monitoring, tracing, logging, diagnosis, etc. Most of these have been provided with default extensions, giving users the option to integrate them as desired.
- Code Generation
Kitex has built-in code generation tools that support generatingThrift,Protobuf, and scaffold code.
User Guide
Basic Features
Including Message Type, Supported Protocols, Directly Invoke, Connection Pool, Timeout Control, Request Retry, LoadBalancer, Circuit Breaker, Rate Limiting, Instrumentation Control, Logging and HttpResolver.[more]
Governance Features
Supporting Service Discovery, Monitoring, Tracing and Customized Access Control.[more]
Advanced Features
Supporting Generic Call and Server SDK Mode.[more]
Code Generation
Including Code Generation Tool and Combined Service.[more]
Framework Extension
Providing Middleware Extensions, Suite Extensions, Service Registry, Service Discovery, Customize LoadBalancer, Monitoring, Logging, Codec, Transport Module, Transport Pipeline, Metadata Transparent Transmission, Diagnosis Module.[more]
Reference
- For Transport Protocol, Exception Instruction and Version Specification, please refer todoc.
Best Practice
- Kitex best practices in production, such as graceful shutdown, error handling, integration testing.More
FAQ
- Please refer toFAQ.
Performance benchmark can only provide limited reference. In production, there are many factors can affect actual performance.
We provide thekitex-benchmark project to track and compare the performance of Kitex and other frameworks under different conditions for reference.
- Netpoll: A high-performance network library.
- kitex-contrib: A partial extension library of Kitex, which users can integrate into Kitex through options according to their needs.
- kitex-examples: Examples of Kitex showcasing various features.
- biz-demo: Business demos using Kitex.
- Enhancing Performance in Microservice Architecture with Kitex
- CloudWeGo: A leading practice for building enterprise cloud native middleware!
- Kitex: Unifying Open Source Practice for a High-Performance RPC Framework
- Performance Optimization on Kitex
- ByteDance Practice on Go Network Library
- Getting Started With Kitex's Practice: Performance Testing Guide
Contributor guide:Contributing.
Kitex is distributed under theApache License, version 2.0. The licenses of third party dependencies of Kitex are explainedhere.
Email:conduct@cloudwego.io
How to become a member:COMMUNITY MEMBERSHIP
Issues:Issues
Discord: Join community withDiscord Channel.
Lark: Scan the QR code below withLark to join our CloudWeGo/kitex user group.
CloudWeGo enriches theCNCF CLOUD NATIVE Landscape.
About
Go RPC framework with high-performance and strong-extensibility for building micro-services.