PowerProto主要用于解決下面三個問題:
降低gRPC的使用門檻與使用成本。
解決protoc以及其相關插件(比如protoc-gen-go、protoc-gen-grpc-gateway)的版本控制問題。
高效管理proto的編譯,實作多平台相容、一鍵安裝與編譯。
功能
實作protoc的一鍵安裝與多版本管理。
實作protoc相關插件(比如protoc-gen-go)的一鍵安裝與多版本管理。
通過配置檔案管理proto的編譯,而非shell腳本,提高可讀性與相容性。
引導式生成配置檔案,跨平台相容,一份配置在多個平台均可以實作一鍵編譯。
支援批量、遞歸編譯proto檔案,提高效率。
跨平台支援PostAction,可以在編譯完成之後執行一些正常操作(比如替換掉所有生成檔案中的"omitempty")。
支援PostShell,在編譯完成之後執行特定的shell腳本。
支援 google api, gogo protobuf 等的一鍵安裝與版本控制。
安裝與依賴
目前版本的 PowerProto 依賴 go(>=1.16) 以及 git(未來可能會直接使用CDN拉取建構好的二進制),請確定運作環境中包含這兩個指令。
protoc的下載下傳源是Github,PowerProto在下載下傳protoc時尊重 HTTP_PROXY、HTTPS_PROXY環境變量,如果遇到網絡問題,請自行配置代理。
在查詢protoc的版本清單時,會對github.com使用git ls-remote,如果遇到網絡問題,請自行為git配置代理。
在目前版本,下載下傳和查詢插件版本均依賴go指令,是以如果遇到網絡問題,請自行配置 GOPROXY環境變量。
預設會使用 使用者目錄/.powerproto作為安裝目錄,用于放置下載下傳好的各種插件以及全局配置,可以通過 POWERPROTO_HOME環境變量來修改安裝目錄。
如果認為powerproto名字太長,可以通過alias成一個更簡單的名字來提高輸入效率,比如沒有人會介意你叫它pp。
一、通過Go進行安裝
直接執行下面的指令即可進行安裝:
go install github.com/storyicon/powerproto/cmd/[email protected]
二、開箱即用版本
可以通過 Github Release Page 下載下傳開箱即用版本。
GitHub - storyicon/powerproto: 🎉 An awesome version control tool for protoc and its related plugins.