English | 中文
trpc-cmdline
工具依赖于 Protobuf,以 proto
文件为中间媒介,借助 protoc 以生成含有数据结构定义的桩代码,借助于 Go 模板以生成含有服务定义的桩代码。
其中:
- 含有数据结构定义的桩代码带有
pb.go
后缀 - 含有服务定义的桩代码带有
trpc.go
后缀
trpc-cmdline
将指定的 proto
文件进行解析之后,会根据相应语言的代码模板进行桩代码生成。
这些代码模板位于 install/protobuf/asset_${language}
目录下,如 install/protobuf/asset_go, install/protobuf/asset_cpp 等。
代码模板中可以引用自定义的变量以及函数,比如:
- 可以在模板文件中通过
{{.PackageName}}
来引用FileDescriptor.PackageName
的值 - 可以使用自定义函数
title
等:{{hello | title}}
=>Hello
推荐通过阅读已有的模板文件进行学习仿写。
通过指定 --assetdir
可以将生成时使用的模板文件夹替换为你所指定的路径,比如:
trpc create -p hello.proto --assetdir=~/.trpc-cmdline-assets/protobuf/asset_go
注意:这里的 --assetdir
需要指定一个绝对路径。
install 目录下的文件会跟随二进制在执行前自动解压到用户的 ~/.trpc-cmdline-assets/
目录下,因此默认的模板路径为 ~/.trpc-cmdline-assets/protobuf/asset_go
其他语言如 C++ 同理,需要额外指定 --lang=cpp
,其默认的模板路径为 ~/.trpc-cmdline-assets/protobuf/asset_cpp