[TOC] > [github](https://github.com/henrylee2cn/erpc/blob/master/README_ZH.md) ## 概述 * 使用 peer 为 server 和 client 提供相同的 API 封装 * 提供多层抽象,如: * peer * session/socket * router * handle/context * message * protocol * codec * transfer filter * plugin * 支持平滑重启和关闭 * 兼容 HTTP 的消息格式: * 由`Header`和`Body`两部分组成 * `Header`包含与 HTTP header 格式相同的 metadata * `Body`支持类似 Content Type 的自定义编解码器,已经实现的: * Protobuf * Thrift * JSON * XML * Form * Plain * 支持 push、call-reply 和更多的消息类型 * 支持自定义消息协议,并提供了一些常见实现: * `rawproto`- 默认的高性能二进制协议 * `jsonproto`- JSON 消息协议 * `pbproto`- Ptotobuf 消息协议 * `thriftproto`- Thrift 消息协议 * `httproto`- HTTP 消息协议 * 可优化的高性能传输层 * 使用 Non-block socket 和 I/O 多路复用技术 * 支持设置套接字 I/O 的缓冲区大小 * 支持设置读取消息的大小(如果超过则断开连接) * 支持控制连接的文件描述符 * 支持多种网络类型: * `tcp` * `tcp4` * `tcp6` * `unix` * `unixpacket` * `quic` * 其他 * websocket * evio * 提供丰富的插件埋点,并已实现: * auth * binder * heartbeat * ignorecase(service method) * overloader * proxy(for unknown service method) * secure * 强大灵活的日志系统: * 详细的日志信息,支持打印输入和输出详细信息 * 支持设置慢操作警报阈值 * 支持自定义实现日志组件 * 客户端会话支持在断开连接后自动重拨