Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/trpc-group/trpc-go
A pluggable, high-performance RPC framework written in golang
https://github.com/trpc-group/trpc-go
Last synced: 2 months ago
JSON representation
A pluggable, high-performance RPC framework written in golang
- Host: GitHub
- URL: https://github.com/trpc-group/trpc-go
- Owner: trpc-group
- License: other
- Created: 2023-08-04T03:55:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-25T10:37:42.000Z (7 months ago)
- Last Synced: 2024-07-31T20:51:16.336Z (5 months ago)
- Language: Go
- Homepage:
- Size: 2.03 MB
- Stars: 770
- Watchers: 23
- Forks: 85
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
- awesome-go - trpc-go - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework. (Distributed Systems / Search and Analytic Databases)
README
English | [中文](README.zh_CN.md)
# tRPC-Go Framework
[![Go Reference](https://pkg.go.dev/badge/github.com/trpc-group/trpc-go.svg)](https://pkg.go.dev/github.com/trpc-group/trpc-go)
[![Go Report Card](https://goreportcard.com/badge/trpc.group/trpc-go/trpc-go)](https://goreportcard.com/report/trpc.group/trpc-go/trpc-go)
[![LICENSE](https://img.shields.io/badge/license-Apache--2.0-green.svg)](https://github.com/trpc-group/trpc-go/blob/main/LICENSE)
[![Releases](https://img.shields.io/github/release/trpc-group/trpc-go.svg?style=flat-square)](https://github.com/trpc-group/trpc-go/releases)
[![Docs](https://img.shields.io/badge/docs-latest-green)](https://trpc.group/docs/languages/go/)
[![Tests](https://github.com/trpc-group/trpc-go/actions/workflows/prc.yml/badge.svg)](https://github.com/trpc-group/trpc-go/actions/workflows/prc.yml)
[![Coverage](https://codecov.io/gh/trpc-group/trpc-go/branch/main/graph/badge.svg)](https://app.codecov.io/gh/trpc-group/trpc-go/tree/main)tRPC-Go, is the [Go][] language implementation of [tRPC][], which is a pluggable, high-performance RPC framework.
For more information, please refer to the [quick start guide][quick start] and [detailed documentation][docs].
## Overall Architecture
![Architecture](.resources/overall.png)
tRPC-Go has the following features:
- Multiple services can be started within a single process, listening on multiple addresses.
- All components are pluggable, with default implementations for various basic functionalities that can be replaced. Other components can be implemented by third parties and registered within the framework.
- All interfaces can be mock tested using gomock&mockgen to generate mock code, facilitating testing.
- The framework supports any third-party protocol by implementing the `codec` interfaces for the respective protocol. It defaults to supporting trpc and http protocols and can be switched at any time.
- It provides the [trpc command-line tool][trpc-cmdline] for generating code templates.## Related Documentation
- [quick start guide][quick start] and [detailed documentation][docs]
- readme documents in each directory
- [trpc command-line tool][trpc-cmdline]
- [helloworld development guide][helloworld]
- [example documentation for various features][features]## Ecosystem
- [codec plugins][go-codec]
- [filter plugins][go-filter]
- [database plugins][go-database]
- [more...][ecosystem]## How to Contribute
If you're interested in contributing, please take a look at the [contribution guidelines][contributing] and check the [unassigned issues][issues] in the repository. Claim a task and let's contribute together to tRPC-Go.
[Go]: https://golang.org
[go-releases]: https://golang.org/doc/devel/release.html
[tRPC]: https://github.com/trpc-group/trpc
[trpc-cmdline]: https://github.com/trpc-group/trpc-cmdline
[docs]: /docs/README.md
[quick start]: /docs/quick_start.md
[contributing]: CONTRIBUTING.md
[issues]: https://github.com/trpc-group/trpc-go/issues
[go-codec]: https://github.com/trpc-ecosystem/go-codec
[go-filter]: https://github.com/trpc-ecosystem/go-filter
[go-database]: https://github.com/trpc-ecosystem/go-database
[ecosystem]: https://github.com/orgs/trpc-ecosystem/repositories
[helloworld]: /examples/helloworld/
[features]: /examples/features/