与libcurl、libevent和Boost进行基准测试。 Boost.Beast的平均吞吐量略高,约为220K请求/秒,而tetsuo-socket在约210K+请求/秒的情况下赢得了12个场景中的7个。 使用Grok构建了这个最小依赖的C套接字库。它具有基于异常的API,使用TRY/EXCEPT/FINALLY,以及一个简单的返回代码基础API来包装它。 该库使用基于区域的内存管理,相关对象共享一个内存区域,以实现确定性的生命周期管理。当你处理区域时,所有内容都会一起释放。 支持TCP/UDP/Unix套接字的网络功能,异步DNS解析,支持DNS-over-TLS和DNS-over-HTTPS,连接池和速率限制,WebSocket RFC 6455,HTTP/1.1和HTTP/2,带有HPACK压缩,TLS/DTLS支持,以及代理协议SOCKS4/5、HTTP CONNECT。 平台抽象自动选择最佳事件轮询后端,Linux上的epoll,BSD/macOS上的kqueue,带有可选的io_uring。 有几个瓶颈需要解决,但到目前为止,它相当稳固。