twitchtv/twirp
GitHub: twitchtv/twirp
Twirp 是一个基于 Protobuf 的极简 RPC 框架,通过自动生成路由和序列化代码简化 Go 服务间通信。
Stars: 7521 | Forks: 324
 [](https://travis-ci.org/twitchtv/twirp) [](https://goreportcard.com/report/github.com/twitchtv/twirp) [](https://godoc.org/github.com/twitchtv/twirp)
Twirp 是一个用于服务间通信的框架,强调简单性
和极简主义。它从 API 定义文件生成路由和序列化,
让你专注于应用程序的逻辑,而不必考虑
诸如 HTTP 方法、路径和 JSON 之类的繁文缛节。
Twirp 类似于 [gRPC](http://www.grpc.io/),但没有自定义的
HTTP 服务器和传输实现:它运行在标准库的
经过极其充分测试且高性能的 `net/http` 服务器上。它可以在 HTTP
1.1 上运行,而不仅仅是 http/2,并且支持 JSON 序列化以便于调试。
在此过程中,你将获得自动生成的客户端以及一个用于
传递错误消息的简单智能框架。非常棒!
在[发布公告博客](https://blog.twitch.tv/en/2018/01/16/twirp-a-sweet-new-rpc-framework-for-go-5f2febbf35f/)中了解更多相关动机。
### 文档
* [入门指南](https://twitchtv.github.io/twirp/docs/intro.html)
* [使用示例](https://twitchtv.github.io/twirp/docs/example.html)
* [错误](https://twitchtv.github.io/twirp/docs/errors.html)
* 更多:https://twitchtv.github.io/twirp/
### 其他语言的实现
此代码库包含 Go 实现的生成器和运行时库。
以下是其他语言的一些第三方实现列表。
| 语言 | 客户端 | 服务器 | 仓库 |
|----------------|---------|---------|------------|
| **Crystal** | ✓ | ✓ | [github.com/mloughran/twirp.cr](https://github.com/mloughran/twirp.cr)
| **Dart** | ✓ | | [github.com/apptreesoftware/protoc-gen-twirp_dart](https://github.com/apptreesoftware/protoc-gen-twirp_dart)
| **Elixir** | ✓ | ✓ | [github.com/keathley/twirp-elixir](https://github.com/keathley/twirp-elixir)
| **Java** | ✓ | ✓ | [github.com/fajran/protoc-gen-twirp_java_jaxrs](https://github.com/fajran/protoc-gen-twirp_java_jaxrs)
| **Java** | | ✓ | [github.com/devork/flit](https://github.com/devork/flit)
| **Java** | | ✓ | [github.com/github/flit](https://github.com/github/flit)
| **JavaScript** | ✓ | | [github.com/thechriswalker/protoc-gen-twirp_js](https://github.com/thechriswalker/protoc-gen-twirp_js)
| **JavaScript** | ✓ | | [github.com/Xe/twirp-codegens/cmd/protoc-gen-twirp_jsbrowser](https://github.com/Xe/twirp-codegens)
| **JavaScript** | ✓ | ✓ | [github.com/tatethurston/TwirpScript](https://github.com/tatethurston/TwirpScript)
| **Kotlin** | ✓ | | [github.com/collectiveidea/twirp-kmm](https://github.com/collectiveidea/twirp-kmm)
| **PHP** | ✓ | ✓ | [github.com/twirphp/twirp](https://github.com/twirphp/twirp)
| **Python3** | ✓ | ✓ | [github.com/verloop/twirpy](https://github.com/verloop/twirpy)
| **Ruby** | ✓ | ✓ | [github.com/twitchtv/twirp-ruby](https://github.com/twitchtv/twirp-ruby)
| **Rust** | ✓ | ✓ | [github.com/sourcefrog/prost-twirp](https://github.com/sourcefrog/prost-twirp)
| **Scala** | ✓ | ✓ | [github.com/soundcloud/twinagle](https://github.com/soundcloud/twinagle)
| **Swagger** | ✓ | ✓ | [github.com/go-bridget/twirp-swagger-gen](https://github.com/go-bridget/twirp-swagger-gen)
| **Swift** | ✓ | | [github.com/CrazyHulk/protoc-gen-swiftwirp](https://github.com/CrazyHulk/protoc-gen-swiftwirp)
| **Typescript** | ✓ | ✓ | [github.com/hopin-team/twirp-ts](https://github.com/hopin-team/twirp-ts)
| **Typescript** | ✓ | ✓ | [github.com/tatethurston/TwirpScript](https://github.com/tatethurston/TwirpScript)
| **Typescript** | ✓ | ✓ | [github.com/timostamm/protobuf-ts](https://github.com/timostamm/protobuf-ts)
### 版本发布
Twirp 通过 git 标签遵循语义化版本控制,并使用 GitHub Releases 提供
发布说明和升级指南:
[Twirp 版本发布](https://github.com/twitchtv/twirp/releases)
### 许可证
本库采用 Apache 2.0 许可证授权。
标签:EVTX分析, Go语言, Protobuf, RPC框架, 序列化, 日志审计, 服务通信, 程序破解