写点什么

Vapor 5 将实现 Swift 服务器端开发

  • 2024-10-15
    北京
  • 本文字数:950 字

    阅读完需:约 3 分钟

Vapor 5 将实现 Swift 服务器端开发

自当前版本发布 4 年多以来,Swift 服务器端开发框架 Vapor 的幕后团队一直在为 Vapor 5 可以利用 Swift 6 的并发能力以及框架的未来发展打基础。该框架的 Alpha 版本计划在 Swift 6 正式发布时发布。


Vapor 5 的主要目标是支持完全结构化并发的原生 API,采用 Swift 生态系统中更为现代化的包,以及完全重写 WebSocket 和 MultipartKit API。


采用结构化并发意味着 Vapor 5 将抛弃在 Vapor 3 中引入的EventLoopFuture,那也是 Vapor 4 中基于async/await的 API 的基础。取而代之,Vapor 5 将从一开始就使用结构化并发,而且会完全弃用EventLoopFuture,从而简化代码推理,并简化 Xcode 的高级结构化并发诊断。


Vapor 5 还将利用一些近年来变得非常流行的第三方库,包括一个启动和停止服务的库 Swift Service Lifecycle;一个为 HTTP 请求和响应提供一组通用表示的库 Swift HTTP Types;以及一个基于 Hummingbird 的新 HTTP 服务器,它将支持 gRPC、异步请求 / 响应体流式传输和 SSE。此外,Vapor 5 将迁移到 Swift Foundation。这是一个轻量级的基础层,取代了 iOS 和 macOS 提供的 Foundation API。Vapor 团队表示,这将在所有平台上提供一致的行为,并减少可能给多平台开发者带来的困惑。


关于 Vapor 5,最后需要说明的一点是,它将引入新的 WebSocket 和 MultipartKit API 实现。MultipartKit 的当前实现有一个主要的限制是不支持 multipart 请求 / 响应体的流式传输,这使得它很难处理非常大的文件或像 NIOFileSystem 这样的 API。Vapor 5 的新实现将解决这个问题。类似地,当前的 WebSocket API 在async-await领域很难使用,新版本将提供一个更容易使用的新 API。


Vapor 由 4 个主要组件组成,包括一个核心包,用于处理路由、JSON 编码 / 解码和管理 HTTP 请求;Fluent,让开发人员可以使用 noSQL 数据库创建数据模型;JWT,用于在 Swift 中创建签名和验证 JSON Web 令牌;Leaf,一个可以从简单语法生成 HTML 的模板引擎。


Vapor 在 GitHub 上有超过 24k 的星星和近 250 个贡献者,它似乎是 用 Swift 构建 HTTP Web 应用程序或 API 时最受欢迎的选项。


如前所述,Vapor 5 的早期版本将与 Swift 6 一起发布,主要是提供一个纯异步技术栈,并删除所有的EventLoopFuture API。


原文链接:

https://www.infoq.com/news/2024/09/swift-vapor-5-roadmap/

2024-10-15 08:154885

评论

发布
暂无评论
发现更多内容

什么是DNS缓存?DNS缓存有什么用?

国科云

benchANT 性能榜单技术解读 Part 2:查询优化

KaiwuDB

数据库 分布式多模

ELB UDP健康检查常见故障分析

天翼云开发者社区

云计算 网络协议 udp 弹性负载均衡

Sonarqube 代码分析技术体系

测试人

软件测试

【YashanDB知识库】ycm托管主机报错libnsl.so.1 no such file or directory

YashanDB

数据库 yashandb

【YashanDB知识库】调用外部UDF未能识别Java环境配置

YashanDB

数据库 yashandb

【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF

YashanDB

数据库 yashandb

爆肝整理!一文带你吃透软件测试

测吧(北京)科技有限公司

测试

数字孪生丨如何利用现有数据提升产品耐久性?

Altair RapidMiner

大数据 数字孪生 智能制造 altair 仿真设计

【YashanDB知识库】隐藏参数怎么查看初始值

YashanDB

数据库 yashandb

【YashanDB知识库】安装共享集群时报错:YAS-05721 invalid input parameter, reason: node name invalid

YashanDB

数据库 yashandb

ITIL 4的4个维度

ServiceDesk_Plus

ITIL

共探数据可信流通时代的密态新算力|走进隐语年度嘉年华精彩现场

隐语SecretFlow

【YashanDB知识库】过期统计信息导致SQL执行计划变差

YashanDB

数据库 yashandb

获取1688商品SKU信息API接口及实战应用

科普小能手

数据挖掘 数据分析 电商 API 接口 1688 API

HarmonyOS NEXT——独立开发者们的机遇之门

最新动态

代码复杂度定义与分析方法

测试人

软件测试

【YashanDB知识库】原生mysql驱动配置连接崖山数据库

YashanDB

数据库 yashandb

Vapor 5 将实现 Swift 服务器端开发_云端开发_Sergio De Simone_InfoQ精选文章