https://github.com/apachecn-archive/kitex

https://github.com/apachecn-archive/kitex

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: apachecn-archive
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Size: 5.65 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Contributing License Code of conduct Roadmap

README.md

CloudWeGo-Kitex

English | 中文

Release WebSite License Go Report Card OpenIssue ClosedIssue Stars Forks

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.

Basic Features

  • High Performance

Kitex integrates Netpoll, a high-performance network library, which offers significant performance advantage over go 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 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; HTTP2 is currently mainly used with the gRPC protocol, and it will support Thrift in the future.

  • Multi-message Type

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.

  • 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, and users can choose to integrate.

  • 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
  • FAQ

Performance

Performance benchmark can only provide limited reference. In production, there are many factors 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.

Related Projects

  • 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.
  • Example: Use examples of Kitex.

Blogs

Contributing

Contributing.

License

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

Community

LarkGroup

Landscapes

  

CloudWeGo enriches the CNCF CLOUD NATIVE Landscape.

Owner

  • Name: ApacheCN 归档
  • Login: apachecn-archive
  • Kind: organization
  • Email: wizard.z@qq.com

防止重要项目丢失而设立的归档

GitHub Events

Total
Last Year

Dependencies

.github/workflows/pr-check.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-go v2 composite
.github/workflows/push-check.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-go v2 composite
  • apache/skywalking-eyes main composite
  • crate-ci/typos v1.3.3 composite
.github/workflows/release-check.yml actions
  • actions/checkout v2 composite
.github/workflows/reviewdog.yml actions
  • actions/checkout v2 composite
  • reviewdog/action-staticcheck v1 composite
go.mod go
  • github.com/apache/thrift v0.13.0
  • github.com/bytedance/gopkg v0.0.0-20210910103821-e4efae9c17c3
  • github.com/cespare/xxhash v1.1.0
  • github.com/choleraehyq/pid v0.0.13
  • github.com/cloudwego/netpoll v0.2.0
  • github.com/cloudwego/netpoll-http2 v0.0.6
  • github.com/cloudwego/thriftgo v0.1.2
  • github.com/json-iterator/go v1.1.11
  • github.com/tidwall/gjson v1.9.3
  • golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
  • golang.org/x/sys v0.0.0-20211205182925-97ca703d548d
  • golang.org/x/tools v0.1.0
  • google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384
  • google.golang.org/protobuf v1.26.0
  • gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
go.sum go
  • 141 dependencies