#客户端-服务器 #同步 #服务器 #HTTP #客户端 #网络

bin+lib http4r-core

简单、同步、对称的客户端和服务器作为函数

7 个版本

0.0.6 2022 年 3 月 20 日
0.0.5 2022 年 3 月 17 日
0.0.0 2022 年 2 月 24 日

992HTTP 服务器 中排名

每月 下载 31

GPL-3.0-or-later

76KB
1.5K SLoC

http4r

核心

http4r 的主要合约和功能。

  • 处理程序、服务器和客户端
  • 将 http 消息写入/读取到线缆
  • 不可变请求、响应、Uri、Headers、Query 等。
  • 支持简单消息、流、压缩和分块编码
  • 即将推出:多部分、x-www-form-urlencoded

哲学

  • 简单性
    • 优先选择简单同步的 http 抽象
    • 通过组合扩展而不是配置
  • 极简主义
    • 尽可能使用最少的依赖项来减少表面面积、crate 大小和升级复杂性
    • 不发布方便函数等,而是在文档中共享食谱
  • 兼容性
    • 尝试保持向后兼容
    • 但与 Rust 本身不同,宁愿破坏它而不是保持一个限制性的抽象
      • 为了减少这种情况,不要像上面提到的那样发布方便函数!

关于

  • http4r 基于 Dan 的 项目 utterlyidlehttp-handler.rust 以及 http4t,由 Matt 建立,并基于 http4k,受到 Mr DaveIvan Sanchez 的启发。
  • 它基于 作为函数的服务器
    • 可组合的 http 处理程序实现 (Request) -> Response
    • 不可变 RequestResponseHeaders
    • 没有魔法或反射,极其简单且无依赖
    • 易于通过线缆或内存进行测试
    • 可以通过将您的应用程序编译为 WASM 在浏览器中测试(而不是通过线缆!)因此我们可以为我们的前端编写快速的测试

http4r 是一个网络工具包版权(C)2021及以后汤姆·沙查姆

本程序是自由软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3或更高版本。

本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于其适销性或适用于特定目的的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已随本程序收到一份GNU通用公共许可证副本(见COPYING文件)。如果没有,请参阅https://www.gnu.org/licenses/

贡献

我是 Rust 新手或者 Rust 知识有点生疏

请参阅 http4r 的贡献指南

依赖关系

~10MB
~325K SLoC