github.com/cloudwego/kitex@v0.9.0/README.md (about)

     1  # CloudWeGo-Kitex
     2  
     3  English | [中文](README_cn.md)
     4  
     5  [![Release](https://img.shields.io/github/v/release/cloudwego/kitex)](https://github.com/cloudwego/kitex/releases)
     6  [![WebSite](https://img.shields.io/website?up_message=cloudwego&url=https%3A%2F%2Fwww.cloudwego.io%2F)](https://www.cloudwego.io/)
     7  [![License](https://img.shields.io/github/license/cloudwego/kitex)](https://github.com/cloudwego/kitex/blob/main/LICENSE)
     8  [![Go Report Card](https://goreportcard.com/badge/github.com/cloudwego/kitex)](https://goreportcard.com/report/github.com/cloudwego/kitex)
     9  [![OpenIssue](https://img.shields.io/github/issues/cloudwego/kitex)](https://github.com/cloudwego/kitex/issues)
    10  [![ClosedIssue](https://img.shields.io/github/issues-closed/cloudwego/kitex)](https://github.com/cloudwego/kitex/issues?q=is%3Aissue+is%3Aclosed)
    11  ![Stars](https://img.shields.io/github/stars/cloudwego/kitex)
    12  ![Forks](https://img.shields.io/github/forks/cloudwego/kitex)
    13  [![Slack](https://img.shields.io/badge/slack-join_chat-success.svg?logo=slack)](https://cloudwego.slack.com/join/shared_invite/zt-tmcbzewn-UjXMF3ZQsPhl7W3tEDZboA)
    14  
    15  Kitex [kaɪt'eks] is a **high-performance** and **strong-extensibility** Golang 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.
    16  
    17  ## Basic Features
    18  
    19  - **High Performance**
    20  
    21  Kitex integrates [Netpoll](https://github.com/cloudwego/netpoll), a high-performance network library, which offers significant performance advantage over [go net](https://pkg.go.dev/net).
    22  
    23  - **Extensibility**
    24  
    25  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).
    26  
    27  - **Multi-message Protocol**
    28  
    29  Kitex is designed to be extensible to support multiple RPC messaging protocols. The initial release contains support for **Thrift**, **Kitex Protobuf** and **gRPC**, 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.
    30  
    31  - **Multi-transport Protocol**
    32  
    33  For service governance, Kitex supports **TTHeader** and **HTTP2**. TTHeader can be used in conjunction with Thrift and Kitex Protobuf; HTTP2 is currently mainly used with the gRPC protocol, and it will support Thrift in the future.
    34  
    35  - **Multi-message Type**
    36  
    37  Kitex supports **PingPong**, **One-way**, and **Bidirectional Streaming**. Among them, One-way currently only supports Thrift protocol, two-way Streaming only supports gRPC, and Kitex will support Thrift's two-way Streaming in the future.
    38  
    39  - **Service Governance**
    40  
    41  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.
    42  
    43  - **Code Generation**
    44  
    45  Kitex has built-in code generation tools that support generating **Thrift**, **Protobuf**, and scaffold code.
    46  
    47  ## Documentation
    48  
    49  - [**Getting Started**](https://www.cloudwego.io/docs/kitex/getting-started/)
    50  
    51  - **User Guide**
    52  
    53    - **Basic Features**
    54    
    55      Including Message Type, Supported Protocols, Directly Invoke, Connection Pool, Timeout Control, Request Retry, LoadBalancer, Circuit Breaker, Rate Limiting, Instrumentation Control, Logging and HttpResolver.[[more]](https://www.cloudwego.io/docs/kitex/tutorials/basic-feature/)
    56      
    57    - **Governance Features**
    58    
    59      Supporting Service Discovery, Monitoring, Tracing and Customized Access Control.[[more]](https://www.cloudwego.io/docs/kitex/tutorials/service-governance/)
    60      
    61    - **Advanced Features**
    62    
    63      Supporting Generic Call and Server SDK Mode.[[more]](https://www.cloudwego.io/docs/kitex/tutorials/advanced-feature/)
    64      
    65    - **Code Generation**
    66    
    67      Including Code Generation Tool and Combined Service.[[more]](https://www.cloudwego.io/docs/kitex/tutorials/code-gen/)
    68      
    69    - **Framework Extension**
    70    
    71      Providing Middleware Extensions, Suite Extensions, Service Registry, Service Discovery, Customize LoadBalancer, Monitoring, Logging, Codec, Transport Module, Transport Pipeline, Metadata Transparent Transmission, Diagnosis Module.[[more]](https://www.cloudwego.io/docs/kitex/tutorials/framework-exten/)
    72    
    73  - **Reference**
    74  
    75    - For Transport Protocol, Exception Instruction and Version Specification, please refer to [doc](https://www.cloudwego.io/docs/kitex/reference/).
    76    
    77  - **FAQ**
    78  
    79    - Please refer to [FAQ](https://www.cloudwego.io/docs/kitex/faq/).
    80  
    81  ## Performance
    82  
    83  Performance benchmark can only provide limited reference. In production, there are many factors can affect actual performance.
    84  
    85  We provide the [kitex-benchmark](https://github.com/cloudwego/kitex-benchmark) project to track and compare the performance of Kitex and other frameworks under different conditions for reference.
    86  
    87  ## Related Projects
    88  
    89  - [Netpoll](https://github.com/cloudwego/netpoll): A high-performance network library.
    90  - [kitex-contrib](https://github.com/kitex-contrib): A partial extension library of Kitex, which users can integrate into Kitex through options according to their needs.
    91  - [kitex-examples](https://github.com/cloudwego/kitex-examples): Examples of Kitex showcasing various features.
    92  - [biz-demo](https://github.com/cloudwego/biz-demo): Business demos using Kitex.
    93  
    94  ## Blogs
    95  - [CloudWeGo: A leading practice for building enterprise cloud native middleware!](https://www.cloudwego.io/blog/2023/06/15/cloudwego-a-leading-practice-for-building-enterprise-cloud-native-middleware/)
    96  - [Kitex: Unifying Open Source Practice for a High-Performance RPC Framework](https://www.cloudwego.io/blog/2022/09/30/kitex-unifying-open-source-practice-for-a-high-performance-rpc-framework/)
    97  - [Performance Optimization on Kitex](https://www.cloudwego.io/blog/2021/09/23/performance-optimization-on-kitex/)
    98  - [ByteDance Practice on Go Network Library](https://www.cloudwego.io/blog/2021/10/09/bytedance-practices-on-go-network-library/)
    99  - [Getting Started With Kitex's Practice: Performance Testing Guide](https://www.cloudwego.io/blog/2021/11/24/getting-started-with-kitexs-practice-performance-testing-guide/)
   100  
   101  ## Contributing
   102  
   103  [Contributing](https://github.com/cloudwego/kitex/blob/develop/CONTRIBUTING.md).
   104  
   105  ## License
   106  
   107  Kitex is distributed under the [Apache License, version 2.0](https://github.com/cloudwego/kitex/blob/develop/LICENSE). The licenses of third party dependencies of Kitex are explained [here](https://github.com/cloudwego/kitex/blob/develop/licenses).
   108  
   109  ## Community
   110  - Email: [conduct@cloudwego.io](conduct@cloudwego.io)
   111  - How to become a member: [COMMUNITY MEMBERSHIP](https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md)
   112  - Issues: [Issues](https://github.com/cloudwego/kitex/issues)
   113  - Slack: Join our CloudWeGo community [Slack Channel](https://join.slack.com/t/cloudwego/shared_invite/zt-tmcbzewn-UjXMF3ZQsPhl7W3tEDZboA).
   114  - Lark: Scan the QR code below with [Lark](https://www.larksuite.com/zh_cn/download) to join our CloudWeGo/kitex user group.
   115  
   116    ![LarkGroup](images/lark_group.png)
   117  
   118  ## Landscapes
   119  
   120  <p align="center">
   121  <img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/>&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>
   122  <br/><br/>
   123  CloudWeGo enriches the <a href="https://landscape.cncf.io/">CNCF CLOUD NATIVE Landscape</a>.
   124  </p>