command module
Version: v1.2.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2016 License: MIT Imports: 17 Imported by: 0



📂 protocol generator + golang text/template (protobuf)

Generic protocol buffer generator backed by Golang's text/template.

This is a generator plugin for the Google Protocol Buffers compiler (protoc).

The plugin can generate files based on a template directory using the Golang's text/template engine.


protoc-gen-gotemplate requires a template_dir directory (by default ./templates).

Every files ending with .tmpl will be processed and written in the destination folder, following the file hierarchy of the template_dir, and removing the .tmpl extension.

$> ls -R
input.proto     templates/doc.txt.tmpl      templates/config.json.tmpl
$> protoc --gotemplate_out=. input.proto
$> ls -R
input.proto     templates/doc.txt.tmpl      templates/config.json.tmpl
doc.txt         config.json

You can specify a custom template_dir or enable debug:

$> protoc --gotemplate_out=debug=true,template_dir=/path/to/template/directory:. input.proto

See examples.


This project uses Masterminds/sprig library and additional functions to extend the builtin text/template helpers.

Non-exhaustive list of new helpers:

  • all the functions from sprig
  • json
  • prettyjson
  • first
  • last

See the project helpers for the complete list.


  • Install the Go compiler and tools from
  • Install protobuf: go get -u{proto,protoc-gen-go}
  • Install protoc-gen-gotemplate: go get -u

Projects using protoc-gen-gotemplate

  • kafka-gateway: Kafka gateway/proxy (gRPC + http) using Go-Kit
  • translator: Translator Micro-service using Gettext and Go-Kit
  • acl: ACL micro-service (gRPC/protobuf + http/json)




The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL