Hasty Briefsbeta

双语

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 客户端示例代码过于复杂且容易出错