Truss helps you build go-kit microservices without having to worry about writing or maintaining boilerplate code.
Перейти к файлу
Tye McQueen af2b4d4a3d Add paths=source_relative option to restore placement of output files. 2019-10-13 15:56:03 -07:00
_example Fix old truss reference in example proto file 2019-01-24 11:40:13 -08:00
cmd use gogo's jsonpb 2019-10-13 15:51:19 -07:00
deftree Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
gendoc Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
gengokit Allow customization of client CLI output. 2019-10-13 15:56:03 -07:00
svcdef update to latest gogo/protobuf, only test with modules enabled 2019-10-13 15:51:18 -07:00
truss Add paths=source_relative option to restore placement of output files. 2019-10-13 15:56:03 -07:00
vendor update vendor GO111MODULE=on go mod vendor 2019-10-13 15:43:07 -07:00
.gitignore Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
.travis.yml Remove testing on tip in favor of testing only stable releases 2019-10-13 15:51:18 -07:00
DEVELOPING.md Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
Dockerfile Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
LICENSE.md Bundle httpoptions protos with googlethirdparty code 2017-01-20 17:43:51 -08:00
Makefile update to latest gogo/protobuf, only test with modules enabled 2019-10-13 15:51:18 -07:00
README.md Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
TUTORIAL.md Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00
USAGE.md Move middlewares into handlers package (#204) 2017-07-24 17:06:16 -07:00
commit_date.sh Add truss version and commit date to generated files. (#186) 2017-05-26 11:19:22 -07:00
go.mod update to latest gogo/protobuf, only test with modules enabled 2019-10-13 15:51:18 -07:00
go.sum update to latest gogo/protobuf, only test with modules enabled 2019-10-13 15:51:18 -07:00
wininstall.bat Don't require metaverse/truss versions of things in this fork. 2019-05-28 15:21:11 -07:00

README.md

Truss Build Status

Truss handles the painful parts of services, freeing you to focus on the business logic.

Everything all the time forever

Install

Currently, there is no binary distribution of Truss, you must install from source.

To install this software, you must:

  1. Install protoc 3 or newer. The easiest way is to download a release from github and add to $PATH. Otherwise install from source.

  2. Install Truss with

    go get -u -d github.com/Unity-Technologies/truss
    cd $GOPATH/src/github.com/Unity-Technologies/truss
    make dependencies
    make
    

    On Windows, do the following instead:

    go get -u -d github.com/Unity-Technologies/truss
    cd %GOPATH%/src/github.com/Unity-Technologies/truss
    wininstall.bat
    

Usage

Using Truss is easy. You define your service with gRPC and protoc buffers, and Truss uses that definition to create an entire service. You can even add http annotations for HTTP 1.1/JSON transport!

Then you open the handlers/handlers.go, add you business logic, and you're good to go.

Here is an example service definition: Echo Service

Try Truss for yourself on Echo Service to see the service that is generated:

truss _example/echo.proto

See USAGE.md and TUTORIAL.md for more details.

Developing

See DEVELOPING.md for details.