Skip to content
/ clay Public

Proto-first minimal server platform for gRPС+REST+Swagger APIs

License

Notifications You must be signed in to change notification settings

utrack/clay

Repository files navigation

clay

Build Status

Minimal server platform for gRPC and REST+Swagger APIs in Go

Using clay you can automatically spin up HTTP handlers for your gRPC server with complete Swagger defs with a few lines of code.

This project provides the HTTP+Swagger handler generator and optional server that you can use to serve your handlers via any protocol.

protobuf generator compatibility

clay/v3 uses new protobuf generator google.golang.org/protobuf. If you're using old generator (golang/protobuf and protoc-gen-go <v1.20.0) then consider using clay/v2 instead.

Read more about this migration here: https://blog.golang.org/protobuf-apiv2 .

Migration from v2

Migration from v2 to v3 is intended to be as straightforward as possible - just replace generator v2 with v3 and you're good to go. Don't forget to change your protobuf generator as well - see previous section for details.

NB: to use new protobuf generator, you need to change go_package directives to be an absolute module path (i.e. github.com/foo/bar/baz instead of baz).

Requirements

Since new Semantic Import Versioning is used, you are required to use Go1.10.3+

How?

Check out an example server for a quick start if you're experienced with gRPC, or dive into step-by-step docs for a full guide.

Contributing

You may contribute in several ways like creating new features, fixing bugs, improving documentation and/or examples using GitHub pull requests.