写点什么

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

评论

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

12.2分布式文件系统

张荣召

巨头们为什么要开源自己的技术?解析科技企业对软件开源的态度

Marilyn

开源 敏捷开发

12.5大数据集群资源管理系统Yarn

张荣召

忒棒了!阿里P8大牛用这份技术点直接带你玩转高可用服务架构

比伯

Java 编程 架构 互联网 程序人生

12.7作业

张荣召

学习笔记-week12

张荣召

话题讨论 | 作为程序员你的业余爱好是什么呢?

小天同学

话题讨论 业余爱好

英特尔唐炯:36.4% PC同比增长,预示了2021是个好年

E科讯

第五周作业第1题

走走,停停……

GaussDB(DWS)应用实践丨负载管理与作业排队处理方法

华为云开发者联盟

数据 负载 GaussDB

云原生体系下的技海浮沉与理论探索

阿里巴巴云原生

Serverless 容器 微服务 云原生 k8s

12.6大数据仓库Hive

张荣召

架构师训练营第 1 期 第 12 周作业

李循律

极客大学架构师训练营

从物理空间到数字世界,数字孪生打造智能化基础设施

华为云开发者联盟

IoT 智能 数字

Java中CAS原理分析(volatile和synchronized浅析)

叫练

volatile 多线程 synchronized CAS JUC

【涂鸦物联网足迹】物联网常见通信协议

IoT云工坊

物联网 HTTP 通信协议 mqtt coap

云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?

华为云开发者联盟

项目管理 敏捷 devcloud

12.3大数据计算框架MapReduce-编程框架

张荣召

H3C核心交换机故障处理通用流程

Norvarm波场链系统开发方案丨Norvarm波场源码功能

系统开发咨询1357O98O718

Norvarm波场链系统开发

第八周总结

小兵

快来!开源一份阿里微服务指导手册:SpringBoot+SpringCloud+消息中间件

Java架构追梦

Java 架构 面试 微服务

第八周大作业

小兵

DolphinDB与Aliyun HybridDB for PostgreSQL在金融数据集上的比较

DolphinDB

postgresql 阿里云 时序数据库 DolphinDB 数据库开发

12.1大数据技术发展史

张荣召

Eclipse Vert.x 4发布

dinstone

Java Reactive Vert.x

以太公约系统开发详情丨以太公约源码案例

系统开发咨询1357O98O718

以太公约系统开发介绍

我看技术人的成长路径

阿里巴巴云原生

开发者 云原生 技术人 自我思考 职场成长

12.4大数据计算框架MapReduce-架构

张荣召

探究神秘的SpringMVC,寻找遗失的web.xml踪迹

996小迁

Java 编程 程序员 架构 面试

ICT芯矿链挖矿矿机系统开发平台丨ICT芯矿链源码案例

系统开发咨询1357O98O718

ICT芯矿链矿机系统开发

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