新闻:PAGI 现在由三个 CPAN 发行版组成,而不再是一个。
- PAGI-Server — 参考服务器实现
- PAGI-Tools — 应用工具包
- PAGI — 规范定义
仅安装你实际运行的组件
在实践中,几乎每个人的起步方式都相同:使用 cpanm PAGI::Server 获取一个
运行 PAGI 应用的服务器,并可能安装 PAGI::Tools 以获得在构建应用时所需的请求/响应
辅助工具、路由器和中间件。这是常见情况,此次拆分正是围绕这一场景设计的——你只需安装你
使用的组件,而无需接受将服务器、工具包和规范捆绑在一起的单一庞大单体。
这两者底层共同依托的是规范:一个小巧且刻意保持稳定的契约——包括 $scope、$receive、$send 的结构以及事件类型——
服务器和工具包均实现此契约。将其独立为一个发行版是此次拆分的真正原因:快速迭代的部分(即服务器和
工具包,变更主要发生在此处)可以自由迭代,而不会 destabilize 你编写应用所依赖的协议。
坦率地说:目前恰好只有一个参考服务器实现,因此“仅依赖基础规范”尚不是大多数人会采取的做法。这种分离具有前瞻性——它使得在不分叉其他所有内容的情况下,开发替代服务器或直接基于该协议构建框架成为可能。此次拆分奠定了这一基础;它并不假装这已经是普遍路径。
与此同时,一切都不会中断:在安装 PAGI 时,过渡期间仍会将服务器和工具包作为依赖项拉取,因此 cpanm PAGI 会像以前一样为你提供完整的栈。这种便利性依赖是暂时的——当你准备好时,请直接依赖 PAGI::Server 和/或 PAGI::Tools。
各组件的亮点
PAGI-Server — 参考
服务器。 一个基于 IO::Async 的实现,处理 HTTP/1.1、HTTP/2、WebSocket、SSE、TLS 和多工作进程预分叉,附带 pagi-server 命令行界面和可替换的服务器运行器。它已通过合规性套件验证,任何实现文档化契约的服务器均可作为即插即用的替代方案——这正是此次拆分所敞开的大门。
PAGI-Tools — 工具包。 在实际构建应用时你所依赖的人机交互体验:一个路由器和基于类的端点框架、一套中间件、现成的应用(静态文件服务、代理、PSGI 桥接),以及 Request/Response/Context 辅助工具。几个亮点包括:PAGI::Response 现在是一个你构建后发送的值对象(清晰分离了组装响应与将其提交到网络的过程),一个新的有序且不区分大小写的 PAGI::Headers 容器,以及一个 to_app 强制转换功能,让每个组合点可以互换接受代码引用、对象或类名。进程内的 PAGI::Test::Client 让你能够测试应
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。