Simplifying Enterprise-level Cloud-Native Architecture Construction and Management

CloudWeGo is Your Ally in Building Enterprise-Level Cloud-Native Architectures

简化企业级云原生架构的构建与管理

CloudWeGo是您构建企业级云原生架构的得力助手

https://www.cloudwego.io/

————————————————————

High-Performance

We integrate advanced features such as asynchronous RPC, streaming capabilities, non-blocking I/O networking, and Just-in-Time (JIT) compilation, allowing CloudWeGo to deliver superior performance for high-demand environments.

高性能

我们集成了异步RPC、流式能力、非阻塞I/O网络和即时(JIT)编译等先进特性,使CloudWeGo能够为高需求场景提供卓越性能。

Strong Extensibility

CloudWeGo employs a modular, layered framework providing a set of interfaces for tailor-made functionality. This ensures that it can meet the specific requirements of any project with precision and efficiency.

强扩展性

CloudWeGo采用模块化、分层框架,提供一系列接口以实现定制功能。这确保其能够精准高效地满足任何项目的特定需求。

Multi-Protocol Support

We provide out-of-the-box support for Thrift, gRPC, HTTP/1, HTTP/2 and WebSocket, and the capability to easily extend to other protocols, ensuring maximum adaptability.

多协议支持

我们提供对Thrift、gRPC、HTTP/1、HTTP/2和WebSocket的开箱即用支持,并具备轻松扩展至其他协议的能力,确保最大程度的适配性。

Built-In Code Generation Tools

CloudWeGo can streamline your development process by providing built-in scaffold code generation tools for Thrift and gRPC.

内置代码生成工具

CloudWeGo通过提供Thrift和gRPC的内置脚手架代码生成工具,可以简化您的开发流程。

Kitex

https://github.com/cloudwego/kitex
Next-gen Go RPC framework transforming microservices with unprecedented scalability and performance.

下一代Go语言RPC框架,以前所未有的可扩展性和性能革新微服务架构。

Hertz

https://github.com/cloudwego/hertz
Next-gen, high-performance Go HTTP framework simplifying microservices development.

下一代高性能Go语言HTTP框架,简化微服务开发。

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 ThriftKitex 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 PingPongOne-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 ThriftProtobuf, 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.

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.
  • kitex-examples: Examples of Kitex showcasing various features.
  • biz-demo: Business demos using Kitex.

Netpoll

https://github.com/cloudwego/netpoll
High-performance NIO network library, dedicated to building reliable, efficient services with a focus on RPC scenarios.

高性能NIO网络库,专注于构建可靠、高效的服务,尤其适用于RPC场景。

Volo

https://github.com/cloudwego/volo
High Performance RPC Framework for high-performance & extensibility, in Rust.

高性能 RPC 框架,具备高性能与可扩展性,采用 Rust 语言实现。

Eino

https://github.com/cloudwego/eino
The ultimate LLM application development and orchestration framework in Golang.

Go语言中终极LLM应用开发与编排框架

Sonic

https://github.com/bytedance/sonic
Blazingly fast JSON serializing & deserializing library, accelerated by JIT and SIMD.

由JIT和SIMD加速的超高速JSON序列化与反序列化库。

Shmipc

https://github.com/cloudwego/shmipc-go
High-performance IPC solution based on shared memory IPC.

基于共享内存 IPC 的高性能进程间通信解决方案。

Introduction

Shmipc is a high performance inter-process communication library developed by ByteDance. It is built on Linux's shared memory technology and uses unix or tcp connection to do process synchronization and finally implements zero copy communication across inter-processes. In IO-intensive or large-package scenarios, it has better performance.

Features

Zero copy

In an industrial production environment, the unix domain socket and tcp loopback are often used in inter-process communication.The read operation or the write operation need copy data between user space buffer and kernel space buffer.But shmipc directly store data to the share memory, so no copy compared to the former.

batch IO

An IO queue was mapped to share memory, which describe the metadata of communication data. so that a process could put many request to the IO queue, and other process could handle a batch IO per synchronization. It could effectively reduce the system calls which was brought by process synchronization.

简介

Shmipc是字节跳动开发的一款高性能进程间通信库。该库基于Linux共享内存技术构建,通过Unix或TCP连接实现进程同步,最终达成跨进程零拷贝通信。在IO密集型或大数据包传输场景下,其性能表现尤为突出。

特性

零拷贝

在工业生产环境中,Unix域套接字和TCP回环接口常被用于进程间通信。读写操作需要在用户空间缓冲区与内核空间缓冲区之间进行数据拷贝。而shmipc直接将数据存储于共享内存,相较前者实现了零拷贝。

批量IO

将IO队列映射至共享内存,该队列用于描述通信数据的元信息。因此一个进程可批量提交多个请求,另一进程则能在每次同步时处理批量IO操作。这种设计能有效减少进程同步带来的系统调用开销。

Sonic 没有 文档。

更多推荐