proxy.golang.org : github.com/yarpc/yarpc-go : v1.56.1
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.56.1
    
Published: 
    
Indexed: 
      
Related tag:
        v1.56.1
  
- github.com/apache/thrift v0.0.0-20161221203622-b2a4d4ae21c7
 - github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b
 - github.com/cactus/go-statsd-client/statsd v0.0.0-20191106001114-12b4e2b38748
 - github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd
 - 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.4.0
 - github.com/golang/snappy v0.0.1
 - github.com/google/go-cmp v0.4.0
 - github.com/kisielk/errcheck v1.2.0
 - github.com/konsorten/go-windows-terminal-sequences v1.0.2
 - github.com/kr/pretty v0.2.0
 - github.com/kr/text v0.2.0
 - github.com/mattn/go-shellwords v1.0.10
 - github.com/opentracing/opentracing-go v1.1.0
 - github.com/pkg/errors v0.9.1
 - github.com/prashantv/protectmem v0.0.0-20171002184600-e20412882b3a
 - github.com/prometheus/client_golang v1.4.1
 - 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/streadway/quantile v0.0.0-20150917103942-b0c588724d25
 - github.com/stretchr/objx v0.2.0
 - github.com/stretchr/testify v1.4.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.2.0+incompatible
 - github.com/uber/ringpop-go v0.8.5
 - github.com/uber/tchannel-go v1.16.0
 - go.uber.org/atomic v1.5.1
 - 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.25.0
 - go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
 - go.uber.org/zap v1.13.0
 - golang.org/x/lint v0.0.0-20200130185559-910be7a94367
 - golang.org/x/mod v0.2.0
 - golang.org/x/net v0.0.0-20200202094626-16171245cfb2
 - golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4
 - golang.org/x/text v0.3.2
 - golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2
 - google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce
 - google.golang.org/grpc v1.28.0
 - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
 - gopkg.in/yaml.v2 v2.2.8
 - honnef.co/go/tools v0.0.1-2019.2.3