Truss helps you build go-kit microservices without having to worry about writing or maintaining boilerplate code.
Перейти к файлу
Adam Ryman b412131d40 Restructure generated file structure (#167)
* Restructure templates

Update integration tests with new generated file structure

Update documentation for new file structure

Resolve #166

* Add DO NOT EDIT! to files that are overwritten on regeneration

* Update gitignore to exclude generated example services
2017-03-29 15:06:04 -07:00
_example Bundle httpoptions protos with googlethirdparty code 2017-01-20 17:43:51 -08:00
cmd Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
deftree Implement test and fix for comments in enums 2017-01-31 12:14:02 -08:00
gendoc Update --svcout to allow you to specify the service directory name (#165) 2017-03-29 11:12:34 -07:00
gengokit Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
svcdef Rename PBFieldName -> QueryParamName in httptransport to represent its purpose within the package 2017-03-28 12:00:27 -07:00
truss Bundle httpoptions protos with googlethirdparty code 2017-01-20 17:43:51 -08:00
vendor Vendor prior go-kit, change CI go version 2017-02-03 19:24:43 -08:00
.gitignore Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
.travis.yml Cleanup and update .travis.yml 2017-03-27 23:50:12 -07:00
DEVELOPING.md Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
Dockerfile Greatly reduce docker image size and build time 2017-01-21 02:08:25 -08:00
LICENSE.md Bundle httpoptions protos with googlethirdparty code 2017-01-20 17:43:51 -08:00
Makefile [#131] Supress warnings when httpoptions are not defined 2017-01-19 19:18:49 -08:00
README.md Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
TUTORIAL.md Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00
USAGE.md Restructure generated file structure (#167) 2017-03-29 15:06:04 -07:00

README.md

Truss Build Status

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

Please note that Truss is currently pre-release software, and may change drastically with no notice. There is no versioning, no guarantees, no stability at this time. However, if you want to play around, make suggestions, or submit changes, we welcome issues and pull requests!

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 the protoc-gen-go package (must be in $PATH).

    go get -u github.com/golang/protobuf/protoc-gen-go
    
  3. Install HTTP Annotations

    go get -u github.com/TuneLab/go-genproto
    
  4. Install Truss with

    go get -u github.com/TuneLab/go-truss/...
    

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.