Skip to content
/ trpc Public
forked from trpc-group/trpc

A multi-language, pluggable, high-performance RPC framework

License

Notifications You must be signed in to change notification settings

js709673/trpc

Repository files navigation

English | 中文

tRPC - A multi-language, pluggable, high performance RPC framework

What is tRPC

tRPC is a high-performance RPC development framework which is designed based on the concept of pluggable,the overall design follows the following principles:

  • Simplicity: Users develop service very simply based on the framework;
  • High Performance: The framework should be applicable to a broad class of use-cases while sacrificing little in performance when compared to a use-case specific framework;
  • Pluggable: The entire framework should be layered and modular, and each module should preferably be pluggable and evolves independently;

You can use it:

  • Build services (trpc/http(s)/grpc, etc.) with multiple ports that support multiple protocols (one port only support one protocol), and can handle client requests synchronously/asynchronously;
  • Access various protocol backend services (trpc/http(s)/grpc, etc.) in a synchronous, asynchronous, and one-way;
  • Streaming RPC programming, currently supports trpc streaming, grpc streaming, http streaming, etc., to implement streaming application services such as Push, File Upload/Download, and AI Serving;
  • Pluggable support for various protocols and service governance systems, such as: customized protocols, various name-service/metrics systems/tracing systems/config-center systems/log system, etc., to facilitate service interoperability and service operation;

Features

  • Works across languages: Implements cross-language service communication based on protobuf IDL;
  • Support multi-protocols: Supports multiple communication protocols and interoperates with different frameworks (such as grpc);
  • Stream RPC: In addition to supporting unary rpc call, tRPC also supports streaming rpc call, which better solves the application scenarios of large data transmission, such as: large file upload/download,message push, speech recognition/video understanding, etc;
  • Rich plugin ecosystem: Provides a large number of plugins that docking to microservice components (such as consul/promethues/opentelemetry, etc.) to facilitate users to build their own service governance system;
  • Scalability: Based on the pluggable design of the framework, users can develop secondary to expand the framework capabilities, such as: parameter validation, authentication, log replay, etc;
  • Flow control and overload protection: Provides flow control and overload protection plugins in a variety of application scenarios to prevent services from being overloaded and unavailable due to burst traffic;

Supported languages

To start using tRPC

Per-language quickstart guides and tutorials can be found in the tRPC website . Code examples are available in the examples directory.

To start developing tRPC

Contributions are welcome!

Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to the tRPC codebase.

About

A multi-language, pluggable, high-performance RPC framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Starlark 77.0%
  • Makefile 22.1%
  • Shell 0.9%