I'm too dumb for Zig's new IO interface
9 months ago
- #IO
- #Zig
- #TLS
- Zig 0.15 引入了带有 std.Io.Reader 和 std.Io.Writer 类型的新 IO 接口
- 旧版 IO 接口存在性能问题且依赖类型与 anytype 的混合使用
- tls.Client.init 函数需要 *std.Io.Reader、*std.Io.Writer 和配置选项作为参数
- net.Stream 虽然提供 reader() 和 writer() 方法,但转换为 *std.Io.Reader/*std.Io.Writer 存在不一致性
- 缓冲机制在新 IO 接口中是一等公民,要求明确指定缓冲区大小
- tls.Client.init 强制要求配置 ca_bundle、host、read_buffer 和 write_buffer 等选项
- 从 tls.Client.reader 读取数据不符合直觉,缺乏简单的 read 方法
- 提供的 TLS 客户端示例代码过于复杂且容易出错