Vanguard
约 1 分钟阅读
- connectrpc/vanguard-goGitHubconnectrpc/vanguard-goconnectrpc/vanguard-go · Apache-2.0, Go, Connect, gRPC, REST · Vanguard 是一个用于 Go 服务器的库,支持在 REST、gRPC、gRPC-Web 和 Connect 协议之间进行无缝转码。笔记:Vanguard
- Apache-2.0, Go, Connect, gRPC, REST
- Vanguard 是一个用于 Go
net/http服务器的库,支持在 REST、gRPC、gRPC-Web 和 Connect 协议之间进行无缝转码。
支持的转换场景
Vanguard 的 Transcoder 充当了“全能翻译官”,支持在以下四种协议之间进行任意两两转换:
| 协议 | 说明 |
|---|---|
| Connect | 由 Buf 提出的现代 RPC 协议,支持 HTTP/1.1 和 HTTP/2。 |
| gRPC | 标准 gRPC 协议,通常需要 HTTP/2。 |
| gRPC-Web | 为浏览器设计的 gRPC 变体,支持 HTTP/1.1。 |
| REST | 基于 google.api.http 注解的 JSON/HTTP 接口。 |
使用示例
import (
"connectrpc.com/vanguard"
"net/http"
)
func main() {
// 假设 proxy 是一个反向代理到后台 gRPC 服务的 handler
handler, _ := vanguard.NewTranscoder([]*vanguard.Service{
vanguard.NewService("my.Service", proxy),
})
http.ListenAndServe(":8080", handler)
}参考
- Connect RPC 官网
- Vanguard-Go GitHubGitHubconnectrpc/vanguard-goconnectrpc/vanguard-go · Apache-2.0, Go, Connect, gRPC, REST · Vanguard 是一个用于 Go 服务器的库,支持在 REST、gRPC、gRPC-Web 和 Connect 协议之间进行无缝转码。笔记:Vanguard
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub1 条
- connectrpc/vanguard-gogithub.com/connectrpc/vanguard-go
其他外链1 条
- connectrpc.comconnectrpc.com/