https://gocn.vip/topics/10660
Twirp 是 Twichtv 2018 年开源的一套极简 RPC 框架,当时官方的介绍文章 Twirp: a sweet new RPC framework for Go。功能上比不上大名鼎鼎的 grpc,但是胜在小巧灵活,兼容 Go 原生的 http.Handler,可以与现有的任意 Router 和中间件搭配使用;同时支持 protobuf 和 json 格式传输,调试方便;另外我个人很喜欢它的 Error 实现,直观并且可扩展性还不错。
Twirp 支持 json 格式的 api 请求,前端可以直接接入使用;但是请求全部是统一的 POST 请求,url 是 /twirp/package.name/method 这种格式。就算能说服自己公司的前端接受这种接入方式,也不太好公开出去给第三方合作方使用。所以需要类似 grpc gateway 的东西,能提供 restful 风格的 api 出去。
https://github.com/twitchtv/twirp
https://blog.twitch.tv/en/2018/01/16/twirp-a-sweet-new-rpc-framework-for-go-5f2febbf35f
https://github.com/yiplee/twirp-gateway-example
https://pasztor.at/blog/go-is-terrible