trpc.group/trpc-go/trpc-go@v1.0.3/README.md (about)

     1  English | [中文](README.zh_CN.md)
     2  
     3  # tRPC-Go Framework
     4  
     5  [![Go Reference](https://pkg.go.dev/badge/github.com/trpc-group/trpc-go.svg)](https://pkg.go.dev/github.com/trpc-group/trpc-go)
     6  [![Go Report Card](https://goreportcard.com/badge/trpc.group/trpc-go/trpc-go)](https://goreportcard.com/report/trpc.group/trpc-go/trpc-go)
     7  [![LICENSE](https://img.shields.io/badge/license-Apache--2.0-green.svg)](https://github.com/trpc-group/trpc-go/blob/main/LICENSE)
     8  [![Releases](https://img.shields.io/github/release/trpc-group/trpc-go.svg?style=flat-square)](https://github.com/trpc-group/trpc-go/releases)
     9  [![Docs](https://img.shields.io/badge/docs-latest-green)](https://trpc.group/docs/languages/go/)
    10  [![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)
    11  [![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)
    12  
    13  
    14  tRPC-Go, is the [Go][] language implementation of [tRPC][], which is a pluggable, high-performance RPC framework.
    15  
    16  For more information, please refer to the [quick start guide][quick start] and [detailed documentation][docs].
    17  
    18  ## Overall Architecture
    19  
    20  ![Architecture](.resources/overall.png)
    21  
    22  tRPC-Go has the following features:
    23  
    24  - Multiple services can be started within a single process, listening on multiple addresses.
    25  - 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.
    26  - All interfaces can be mock tested using gomock&mockgen to generate mock code, facilitating testing.
    27  - 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.
    28  - It provides the [trpc command-line tool][trpc-cmdline] for generating code templates.
    29  
    30  ## Related Documentation
    31  
    32  - [quick start guide][quick start] and [detailed documentation][docs]
    33  - readme documents in each directory
    34  - [trpc command-line tool][trpc-cmdline]
    35  - [helloworld development guide][helloworld]
    36  - [example documentation for various features][features]
    37  
    38  ## Ecosystem
    39  
    40  - [codec plugins][go-codec]
    41  - [filter plugins][go-filter]
    42  - [database plugins][go-database]
    43  - [more...][ecosystem]
    44  
    45  ## How to Contribute
    46  
    47  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.
    48  
    49  [Go]: https://golang.org
    50  [go-releases]: https://golang.org/doc/devel/release.html
    51  [tRPC]: https://github.com/trpc-group/trpc
    52  [trpc-cmdline]: https://github.com/trpc-group/trpc-cmdline
    53  [docs]: /docs/README.md
    54  [quick start]: /docs/quick_start.md
    55  [contributing]: CONTRIBUTING.md
    56  [issues]: https://github.com/trpc-group/trpc-go/issues
    57  [go-codec]: https://github.com/trpc-ecosystem/go-codec
    58  [go-filter]: https://github.com/trpc-ecosystem/go-filter
    59  [go-database]: https://github.com/trpc-ecosystem/go-database
    60  [ecosystem]: https://github.com/orgs/trpc-ecosystem/repositories
    61  [helloworld]: /examples/helloworld/
    62  [features]: /examples/features/