标签: hyper
与该标签相关的所有文章 "hyper".
-
Rust 异步生态(总览):从 mio 到 axum 的分层架构
Rust 的异步网络栈是 mio → tokio → hyper → tower → axum 五层,每层职责单一、可独立替换。C++ Asio 把事件通知、调度、定时器、buffer、协程支持打包在一个库里。两种设计没有绝对优劣——Rust 的分层来自语言特性(ownership 使模块边界天然清晰),Asio 的一体化来自 C++ 生态的碎片化(没有统一运行时,不如自己全做)。
-
hyper(三):与 axum、tower 的架构关系
hyper 处理 HTTP 协议 (字节流 ↔ Request/Response), tower 提供中间件组合框架 (Service + Layer), axum 在两者之上添加路由和类型安全的请求提取. 三者的分工是: hyper 管"线路上的字节", tower 管"请求的处理流水线", axum 管"开发者体验". 理解这个三层架构是在 Rust 中写 HTTP 服务的基础.
-
hyper(二):Body trait 与请求响应体
httpbody::Body trait 是 hyper 生态中所有 HTTP body 的统一抽象, 通过 pollframe 方法按帧返回数据 (data frames) 或 trailers, 实现零拷贝流式传输. hyper 1.0 将入站 body 固定为 Incoming 类型, 出站 body 由开发者从 Full<Bytes>, Empty<Bytes>, BoxBody 等中选择 -- 这种入站/出站类型分离是从 0.14 迁移时最大的心智模型变化.
-
hyper(一):底层 HTTP 实现与 1.0 迁移
hyper 是 Rust 生态中 HTTP/1.1 和 HTTP/2 的底层协议实现, 不是 Web 框架. 1.0 版本做了破坏性重构: 移除内置高层 Server/Client 到 hyper-util, Body 从具体类型变为 trait, 定义了自己的 Service trait (&self 而非 &mut self, 无 poll_ready). hyper 是 axum、reqwest、tonic 的底层引擎.