ランキングに戻る

cloudwego/kitex

Gocloudwego.io/docs/kitex/

Go RPC framework with high-performance and strong-extensibility for building micro-services.

rpcgomicroservicesframeworkgrpcprotobufstreamingthrift
スター成長
スター
8k
フォーク
914
週間成長
Issue
45
8k8k8k8k8k
2021年7月2023年3月2024年11月2026年7月
成果物Go Modulesgo get github.com/cloudwego/kitex
README

CloudWeGo-Kitex

English | 中文

Release WebSite License Go Report Card OpenIssue ClosedIssue Stars Forks

Kitex [kaɪt'eks] is a high-performance and strong-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.

Basic Features

  • High Performance

Kitex integrates Netpoll, a high-performance network library, which offers a significant performance advantage over go net.

  • Extensibility

Kitex provides many interfaces with default implementations 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 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.

  • Multi-transport Protocol

For service governance, Kitex supports TTHeader and HTTP2. TTHeader can be used in conjunction with Thrift and Kitex Protobuf.

  • Multi-message Type

Kitex supports PingPong, One-way, and Bidirectional 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 generating Thrift, Protobuf, and scaffold code.

Documentation

  • Getting Started

  • 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 to doc.
  • Best Practice

    • Kitex best practices in production, such as graceful shutdown, error handling, and integration testing. More
  • FAQ

    • Please refer to FAQ.

Performance

Performance benchmark can only provide a limited reference. In production, there are many factors that can affect actual performance.

We provide the kitex-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.

Blogs

Contributing

Contributor guide: Contributing.

License

Kitex is distributed under the Apache License, version 2.0. The licenses of third party dependencies of Kitex are explained here.

Community

Landscapes

  

CloudWeGo enriches the CNCF CLOUD NATIVE Landscape.

関連リポジトリ
doocs/advanced-java

😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识

JavaMavenCreative Commons Attribution Share Alike 4.0 Internationaljavadistributed-systems
java.doocs.org
79k19.2k
protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format

C++Otherprotobufprotocol-buffers
protobuf.dev
71.6k16.2k
meteor/meteor

Meteor, the JavaScript App Platform

JavaScriptnpmOtherjavascriptmeteor
meteor.com
44.8k5.2k
apache/dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.

JavaMavenApache License 2.0dubbodistributed-systems
dubbo.apache.org
41.5k26.4k
aria2/aria2

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

C++GNU General Public License v2.0cpp11http
aria2.github.io
41.5k3.9k
zeromicro/go-zero

A cloud-native Go microservices framework with cli tool for productivity.

GoGo ModulesMIT Licensegolangmicroservice
go-zero.dev
33.2k4.3k
google/flatbuffers

FlatBuffers: Memory Efficient Serialization Library

C++Apache License 2.0flatbuffersserialization
flatbuffers.dev
26.2k3.6k
grpc/grpc-go

The Go language implementation of gRPC. HTTP/2 based RPC

GoGo ModulesApache License 2.0gogrpc
grpc.io
23k4.7k
chai2010/advanced-go-programming-book

:books: 《Go语言高级编程》开源图书,涵盖CGO、Go汇编语言、RPC实现、Protobuf插件实现、Web框架实现、分布式系统等高阶主题(完稿)

GoGo ModulesBSD 2-Clause "Simplified" Licensegogolang
chai2010.cn/advanced-go-programming-book/
20.1k3.2k
apache/brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".

C++Apache License 2.0rpc
brpc.apache.org
17.6k4.1k
TanStack/router

🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more).

TypeScriptnpmMIT Licensereactrouter
tanstack.com/router
14.8k1.8k
grpc/grpc-rust

A native gRPC client & server implementation with async/await support.

Rustcrates.ioMIT Licenserustgrpc
docs.rs/tonic
12.4k1.2k