Documentation

Overview

thriftrw-plugin-yarpc implements a plugin for ThriftRW that generates code compatible with YARPC.

thriftrw-plugin-yarpc supports "rpc.code" annotations on Thrift exceptions. For example:

exception ExceptionWithCode {
  1: required string val
} (
  rpc.code = "INVALID_ARGUMENT"
)

The "rpc.code" annotation can be any code matching the string name of gRPC status enum codes. YARPC error codes match 1-1 with these codes, however gRPC uses a different string name representation. We choose to use the raw gRPC enum code names instead to ensure cross-language compatibility with other languages, such as Java.

- https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto

Available string names method:

- "CANCELLED"
- "UNKNOWN"
- "INVALID_ARGUMENT"
- "DEADLINE_EXCEEDED"
- "NOT_FOUND"
- "ALREADY_EXISTS"
- "PERMISSION_DENIED"
- "RESOURCE_EXHAUSTED"
- "FAILED_PRECONDITION"
- "ABORTED"
- "OUT_OF_RANGE"
- "UNIMPLEMENTED"
- "INTERNAL"
- "UNAVAILABLE"
- "DATA_LOSS"
- "UNAUTHENTICATED"

Adding codes will affect YARPC's observability middleware classification of client and server errors for Thrift exceptions.

For more information on the Thrift encoding, check the documentation of the parent package.

Directories

Path Synopsis
internal
tests/atomic/readonlystorefx
Package readonlystorefx provides better integration for Fx for services implementing or calling ReadOnlyStore.
Package readonlystorefx provides better integration for Fx for services implementing or calling ReadOnlyStore.
tests/atomic/storefx
Package storefx provides better integration for Fx for services implementing or calling Store.
Package storefx provides better integration for Fx for services implementing or calling Store.
tests/common/baseservicefx
Package baseservicefx provides better integration for Fx for services implementing or calling BaseService.
Package baseservicefx provides better integration for Fx for services implementing or calling BaseService.
tests/common/emptyservicefx
Package emptyservicefx provides better integration for Fx for services implementing or calling EmptyService.
Package emptyservicefx provides better integration for Fx for services implementing or calling EmptyService.
tests/common/extendemptyfx
Package extendemptyfx provides better integration for Fx for services implementing or calling ExtendEmpty.
Package extendemptyfx provides better integration for Fx for services implementing or calling ExtendEmpty.
tests/common/extendonlyfx
Package extendonlyfx provides better integration for Fx for services implementing or calling ExtendOnly.
Package extendonlyfx provides better integration for Fx for services implementing or calling ExtendOnly.
tests/extends/barfx
Package barfx provides better integration for Fx for services implementing or calling Bar.
Package barfx provides better integration for Fx for services implementing or calling Bar.
tests/extends/foofx
Package foofx provides better integration for Fx for services implementing or calling Foo.
Package foofx provides better integration for Fx for services implementing or calling Foo.
tests/extends/namefx
Package namefx provides better integration for Fx for services implementing or calling Name.
Package namefx provides better integration for Fx for services implementing or calling Name.
tests/weather/weatherfx
Package weatherfx provides better integration for Fx for services implementing or calling Weather.
Package weatherfx provides better integration for Fx for services implementing or calling Weather.