twitchtv/twirp

GitHub: twitchtv/twirp

Twirp 是一个基于 Protobuf 的极简 RPC 框架,通过自动生成路由和序列化代码简化 Go 服务间通信。

Stars: 7521 | Forks: 324

![Twirp Logo](https://static.pigsec.cn/wp-content/uploads/repos/cas/c5/c51c3ea4b353245239c5178c669da7d9fb1844e6bd326edf7ec4bb237428e344.png) [![构建状态](https://travis-ci.org/twitchtv/twirp.svg?branch=main)](https://travis-ci.org/twitchtv/twirp) [![Go 报告卡](https://goreportcard.com/badge/github.com/twitchtv/twirp)](https://goreportcard.com/report/github.com/twitchtv/twirp) [![GoDoc](https://godoc.org/github.com/twitchtv/twirp?status.svg)](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框架, 序列化, 日志审计, 服务通信, 程序破解