Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trpc-group/trpc
A multi-language, pluggable, high-performance RPC framework
https://github.com/trpc-group/trpc
Last synced: 3 months ago
JSON representation
A multi-language, pluggable, high-performance RPC framework
- Host: GitHub
- URL: https://github.com/trpc-group/trpc
- Owner: trpc-group
- License: other
- Created: 2023-08-02T08:44:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-25T03:41:08.000Z (4 months ago)
- Last Synced: 2024-07-25T09:22:47.284Z (4 months ago)
- Language: Starlark
- Homepage:
- Size: 4.93 MB
- Stars: 224
- Watchers: 8
- Forks: 23
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
English | [中文](README.zh_CN.md)
# tRPC - A multi-language, pluggable, high-performance RPC framework
## What is tRPC
tRPC is a high-performance RPC framework that designed based on the concept of pluggable,the overall design follows the following principles:
- Simple: Users develop service very simply based on the framework.
- High-Performance: The performant of the framework can be applicable to massive scenario on the internet.
- Pluggable: The framework is layered and modularized in architectural design and implementation, and each core module be pluggable and evolves independently.By using tRPC, you can:
- 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.
- Support 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 operation.## Features
- Works across languages:Implements cross-language service communication based on Protocol Buffers.
- Support multi-protocols:Supports multiple protocols and interoperates with different frameworks (such as gRPC).
- Streaming RPC: Supports streaming RPC, which is better suited for various application scenarios such as large file upload/download, message push, AI 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 & Overload control: 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
- [Cpp](https://github.com/trpc-group/trpc-cpp)
- [Go](https://github.com/trpc-group/trpc-go)## To start using tRPC
Per-language quickstart guides and tutorials can be found in the [tRPC website](https://trpc.group/docs/) . Code examples are available in the examples directory.
- tRPC
- [architecture design](https://github.com/trpc-group/trpc/blob/main/docs/en/architecture_design.md)
- [terminology](https://github.com/trpc-group/trpc/blob/main/docs/en/terminology.md)
- [plugin ecosystem](https://github.com/trpc-group/trpc/blob/main/docs/en/plugin_ecosystem.md)
- [trpc protocol](https://github.com/trpc-group/trpc/blob/main/docs/en/trpc_protocol_design.md)
- tRPC-Cpp:
- [quick start](https://github.com/trpc-group/trpc-cpp/blob/main/docs/en/quick_start.md)
- [basic tutorial](https://github.com/trpc-group/trpc-cpp/blob/main/docs/en/basic_tutorial.md)
- [user guide](https://github.com/trpc-group/trpc-cpp/tree/main/docs)
- [examples](https://github.com/trpc-group/trpc-cpp/tree/main/examples)
- tRPC-Go:
- [quick start](https://github.com/trpc-group/trpc-go/blob/main/docs/quick_start.md)
- [basic tutorial](https://github.com/trpc-group/trpc-go/blob/main/docs/basics_tutorial.md)
- [user guide](https://github.com/trpc-group/trpc-go/tree/main/docs/README.md)
- [examples](https://github.com/trpc-group/trpc-go/tree/main/examples)## To start developing tRPC
Contributions are welcome!
Please read [How to contribute](https://github.com/trpc-group/trpc/blob/main/CONTRIBUTORS.md) 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.
## Feedback
Report bugs, ask questions or give suggestions by [Issues](https://github.com/trpc-group/trpc/issues)