首届AICon深圳正式启动|AI实践哪家强?来 AICon,解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

评论

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

从 MySQL 大量数据清洗到 TiDB 说起

TiDB 社区干货传送门

实践案例

TiDB Ansible 使用指南

TiDB 社区干货传送门

TiDB 3.0:窗口函数初体验

TiDB 社区干货传送门

DM多库合并至TiDB

TiDB 社区干货传送门

迁移 实践案例

在 minikube 上使用 TiDB Operator 构建 TiDB 集群(持续更新中)

TiDB 社区干货传送门

安装 & 部署

TiDB 升级——ansible与tiup使用小结

TiDB 社区干货传送门

TiDB 底层架构

一张脑图让你快速了解 TiDB 5.0版本新特性

TiDB 社区干货传送门

TiDB 底层架构

PD 调度器模块

TiDB 社区干货传送门

TiDB 底层架构

Flink on TiDB —— 便捷可靠的实时数据业务支撑

TiDB 社区干货传送门

实践案例

TiDB 热点问题详解

TiDB 社区干货传送门

TiDB 数据一致性校验实现:Sync-diff-inspector 优化方案

TiDB 社区干货传送门

性能调优

TiDB 热点问题定位

TiDB 社区干货传送门

故障排查/诊断

一篇文章带你玩转 TiDB 灾难恢复

TiDB 社区干货传送门

故障排查/诊断

知乎已读服务的前世今生与未来

TiDB 社区干货传送门

038-拯救大兵瑞恩之 TiDB 如何在 TiKV 损坏的情况下恢复

TiDB 社区干货传送门

Grafana汇总报表

TiDB 社区干货传送门

监控

TiDB new feature max_execution_time

TiDB 社区干货传送门

当数据库遇上 Kuberbetes丨「能量钛」圆桌论坛回顾

TiDB 社区干货传送门

实践案例 数据库架构选型

PD 启动主流程分析

TiDB 社区干货传送门

TiDB 底层架构

TiDB 在汽车之家818台网互动项目中的应用

TiDB 社区干货传送门

实践案例 管理与运维 数据库架构选型

DM filter 实践整理

TiDB 社区干货传送门

实践案例

TiDB Parser模块的简单解读与改造方法

TiDB 社区干货传送门

TiDB 底层架构

接触TiDB4.0时,一些部署方式实践尝试

TiDB 社区干货传送门

安装 & 部署

Region 创建、分裂及合并的原理

TiDB 社区干货传送门

【精选实践】一体化无边界的大数据基础平台

TiDB 社区干货传送门

MySQL 与 TiDB 不同的 DDL 发展历程

TiDB 社区干货传送门

TiDB 底层架构

TiDB 的统计信息

TiDB 社区干货传送门

TiDB 慢日志在伴鱼的实践

TiDB 社区干货传送门

实践案例

还在用变量去实现多维度分组排序吗?你 out 了!

TiDB 社区干货传送门

实践案例

TiDB 集群可用性增强 —— TiDB 5.0 的 Joint Consensus 机制介绍

TiDB 社区干货传送门

TiDB 底层架构

事务前沿研究丨确定性事务

TiDB 社区干货传送门

TiDB 底层架构

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