eRPC
eRPC 是一个高效、可扩展且易于使用的 RPC 框架。
适用于 RPC、微服务、点对点、即时通信、游戏等领域。
安装
bash
GO111MODULE=on go get -u -v -insecure github.com/andeya/erpc/v7
go
import "github.com/andeya/erpc/v7"
特性
- 使用 peer 为服务器和客户端提供相同的 API 包
- 提供多种布局抽象,例如:
- peer
- session/socket
- router
- handle/context
- message
- protocol
- codec
- transfer filter
- plugin
- 支持友好地重启和关闭
- HTTP 兼容的消息格式:
- 由
Header 和 Body 两部分组成
Header 以与 HTTP 头相同的格式包含元数据
Body 支持根据内容类型自定义编解码器,已实现:
- Protobuf
- Thrift
- JSON
- XML
- Form
- Plain
- 支持推送、调用-回复和其他类型的消息
- 支持自定义消息协议,并提供了一些常用实现:
rawproto - 默认的高性能二进制协议
jsonproto - JSON 消息协议
pbproto - Protobuf 消息协议
thriftproto - Thrift 消息协议
httproto - HTTP 消息协议
- 优化了高性能的传输层
- 使用非阻塞套接字和 I/O 多路复用技术
- 支持设置套接字 I/O 缓冲区的大小
- 支持设置读取消息的大小(如果超过则断开连接)
- 支持控制连接文件描述符
- 支持多种网络类型:
tcp
tcp4
tcp6
unix
unixpacket
kcp
quic
- 其他
- 提供丰富的插件点,并已实现:
- auth
- binder
- heartbeat
- ignorecase(service method)
- overloader
- proxy(for unknown service method)
- secure
- 强大而灵活的日志系统:
- 详细的日志信息,支持打印输入和输出详情
- 支持设置慢速操作报警阈值
- 支持自定义实现日志组件
简体中文