写点什么

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:154533

评论

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

项目管理中的测试:确保项目成功的关键环节

乐思项目管理

项目管理 软件测试

项目管理中的代码评审:一种有效的实施策略和常见问题解析

乐思项目管理

代码评审 #项目管理

代码随想录Day31 - 贪心算法(一)

jjn0703

对线面试官-线程池连环问

派大星

线程池工作原理 Java 面试题

Spring系列之HikariCP连接池

java易二三

编程 程序员 Spring Boot 计算机 spring类型转换

直播网站源码社区功能部署开发:连接世界的互动形式!

山东布谷科技

软件开发 社区 源码搭建 直播网站源码 直播网站

死磕Java八股成功拿下Offer,结果背调没过...

程序员小毕

程序员 面试 高并发 架构师 java面试

高可用三大利器 — 熔断、限流和降级

Java研究者

架构 高可用 熔断 限流 java 架构

获评最高级别权威认证!融云通过中国信通院「办公即时通信软件安全能力」评测

融云 RongCloud

通信 即时通讯 办公 融云 百幄

代码随想录Day32 - 贪心算法(二)

jjn0703

MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)

汀丶人工智能

人工智能 自然语言处理 LoRa llama LLM模型

代码随想录 Day27 - 回溯(三)

jjn0703

项目管理中的'右转必停'原则:慎重决策与风险管理

乐思项目管理

项目管理 #观察生活

代码随想录Day28 - 回溯(四)

jjn0703

项目管理的成功秘诀:架构评审的力量

乐思项目管理

架构评审 #项目管理

使用APP源码搭建直播网站难不难

山东布谷网络科技

APP开发 直播APP源码

Java Stream 源码分析

java易二三

Java 编程 计算机

慎思笃行,兴业致远:金融行业的数据之道

脑极体

金融数据

为什么我强烈建议大家使用枚举来实现单例

java易二三

编程 程序员 计算机 枚举

代码随想录Day30 - 回溯(六)

jjn0703

在 Amazon EMR 上构建实时数据湖

亚马逊云科技 (Amazon Web Services)

Amazon EMR

彻底学透分布式事务看这篇笔记就够了!

小小怪下士

Java 程序员 分布式 分布式事务

代码随想录Day29 - 回溯(五)

jjn0703

致敬图灵!HashData拥抱数据智能新时代!

酷克数据HashData

一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!

编程的平行世界

uni-app Vue 前端 Flutter Android Apk

2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

福大大架构师每日一题

福大大架构师每日一题

腾讯会议搭桥铺路

B Impact

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