proxy.golang.org : github.com/yarpc/yarpc-go : v1.73.0
Package yarpc provides the YARPC service framework. With hundreds to thousands of services communicating with RPC, transport protocols (like HTTP and TChannel), encoding protocols (like JSON or Thrift), and peer choosers are the concepts that vary year over year. Separating these concerns allows services to change transports and wire protocols without changing call sites or request handlers, build proxies and wire protocol bridges, or experiment with load balancing strategies. YARPC is a toolkit for services and proxies. YARPC breaks RPC into interchangeable encodings, transports, and peer choosers. YARPC for Go provides reference implementations for HTTP/1.1, TChannel and gRPC transports, and also raw, JSON, Thrift, and Protobuf encodings. YARPC for Go provides a round robin peer chooser and experimental implementations for debug pages and rate limiting. YARPC for Go plans to provide a load balancer that uses a least-pending-requests strategy. Peer choosers can implement any strategy, including load balancing or sharding, in turn bound to any peer list updater. Regardless of transport, every RPC has some common properties: caller name, service name, procedure name, encoding name, deadline or TTL, headers, baggage (multi-hop headers), and tracing. Each RPC can also have an optional shard key, routing key, or routing delegate for advanced routing. YARPC transports use a shared API for capturing RPC metadata, so middleware can apply to requests over any transport. Each YARPC transport protocol can implement inbound handlers and outbound callers. Each of these can support different RPC types, like unary (request and response) or oneway (request and receipt) RPC. A future release of YARPC will add support for other RPC types including variations on streaming and pubsub.
Registry -
Documentation -
Download -
JSON
purl: pkg:golang/github.com/yarpc/yarpc-go@v1.73.0
Published:
Indexed:
Related tag:
v1.73.0
- github.com/BurntSushi/toml v1.2.1
- github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239
- github.com/beorn7/perks v1.0.1
- github.com/cactus/go-statsd-client/statsd v0.0.0-20191106001114-12b4e2b38748
- github.com/cespare/xxhash/v2 v2.1.1
- github.com/davecgh/go-spew v1.1.1
- github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13
- github.com/fatih/structtag v1.2.0
- github.com/gogo/googleapis v1.3.2
- github.com/gogo/protobuf v1.3.1
- github.com/gogo/status v1.1.0
- github.com/golang/mock v1.6.0
- github.com/golang/protobuf v1.5.2
- github.com/golang/snappy v0.0.1
- github.com/google/go-cmp v0.5.8
- github.com/jessevdk/go-flags v1.5.0
- github.com/kisielk/errcheck v1.2.0
- github.com/konsorten/go-windows-terminal-sequences v1.0.2
- github.com/mattn/go-shellwords v1.0.10
- github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369
- github.com/opentracing/opentracing-go v1.1.0
- github.com/pkg/errors v0.9.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/prometheus/client_golang v1.4.1
- github.com/prometheus/client_model v0.2.0
- github.com/prometheus/common v0.9.1
- github.com/prometheus/procfs v0.0.9
- github.com/samuel/go-thrift v0.0.0-20191111193933-5165175b40af
- github.com/sirupsen/logrus v1.4.2
- github.com/stretchr/testify v1.7.0
- github.com/uber-common/bark v1.2.1
- github.com/uber-go/mapdecode v1.0.0
- github.com/uber-go/tally v3.3.15+incompatible
- github.com/uber/jaeger-client-go v2.22.1+incompatible
- github.com/uber/jaeger-lib v2.4.1+incompatible
- github.com/uber/ringpop-go v0.8.5
- github.com/uber/tchannel-go v1.33.0
- go.uber.org/atomic v1.6.0
- go.uber.org/dig v1.8.0
- go.uber.org/fx v1.10.0
- go.uber.org/goleak v1.0.0
- go.uber.org/multierr v1.4.0
- go.uber.org/net/metrics v1.3.0
- go.uber.org/thriftrw v1.31.0
- go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
- go.uber.org/yarpc/internal/examples v0.0.0-20230831212929-ccef8c01afa8
- go.uber.org/zap v1.13.0
- golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a
- golang.org/x/lint v0.0.0-20200130185559-910be7a94367
- golang.org/x/mod v0.9.0
- golang.org/x/net v0.14.0
- golang.org/x/sys v0.11.0
- golang.org/x/text v0.12.0
- golang.org/x/tools v0.7.0
- google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013
- google.golang.org/grpc v1.44.0
- google.golang.org/protobuf v1.26.0
- gopkg.in/yaml.v2 v2.4.0
- gopkg.in/yaml.v3 v3.0.1
- honnef.co/go/tools v0.4.3