/yarpc-go

A message passing platform for Go

Primary LanguageGoMIT LicenseMIT

yarpc GoDoc GitHub release Mit License Build Status Coverage Status

A message passing platform for Go that lets you:

  • Write servers and clients with various encodings, including JSON, Thrift, and Protobuf.
  • Expose servers over many transports simultaneously, including HTTP/1.1, gRPC, and TChannel.
  • Migrate outbound calls between transports without any code changes using config.

Installation

We recommend locking to SemVer range ^1 using Glide:

glide get 'go.uber.org/yarpc#^1'

Stability

This library is v1 and follows SemVer strictly.

No breaking changes will be made to exported APIs before v2.0.0 with the exception of experimental packages.

Experimental packages reside within packages named x, and are not stable. This means their APIs can break at any time. The intention here is to validate these APIs and iterate on them by working closely with internal customers. Once stable, their contents will be moved out of the containing x package and their APIs will be locked.

Development

Setup

To start developing with yarpc-go, run the following command to setup your environment:

cd $GOPATH/src
git clone https://github.com/yarpc/yarpc-go.git go.uber.org/yarpc
make

Running Tests

To run tests into a pre-configured docker container, run the following command:

make test

To run tests locally, run the following command:

SUPPRESS_DOCKER=1 make test

Happy development!