开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

评论

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

架构师训练营第十四周总结

张明森

C语言指针详解

C语言与CPP编程

c c++ 编程语言 指针

洗牌算法

C语言与CPP编程

c c++ 算法 编程语言

前端 10 问之 Docker (第一篇)

局外人

Docker

哦!这该死的 C 语言

苹果看辽宁体育

c 后端

数据结构与算法系列之数组

书旅

数据结构 算法 数组 数据结构与算法

一文带你了解微服务架构和设计(多图)

Phoenix

架构 分布式 微服务

ARTS 打卡 (20.09.07-20.09.13)

小王同学

03 Spring Security 入门实例

哈库拉玛塔塔

Spring Boot kotlin spring security

Spring 5 中文解析测试篇-Spring MVC测试框架

青年IT男

单元测试 Spring5

你必须要了解的「架构」小历史

小齐本齐

spring Spring Cloud Spring Boot

CString 类的线程不安全问题

C语言与CPP编程

c c++ 编程语言

ARTS Week16

时之虫

ARTS 打卡计划

导致系统不可用原因及密码验证

纯纯

第五周总结

Vincent

极客时间 极客大学

简述C语言宏定义的使用

C语言与CPP编程

c c++ 编程语言

程序的机器级表示-异构的数据结构

引花眠

计算机基础

链表中移除重复节点,保罗·格雷厄姆的传奇博客,Mac三指拖动操作,大数据平台 John 易筋 ARTS 打卡 Week 17

John(易筋)

大数据 ARTS 打卡计划 链表移除相同节点 保罗格雷厄姆 mac三指操作设置

安全相关总结

纯纯

为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

冰河

git 冰河 代码管理 代码仓库 分支合并

ARTS打卡 第16周

引花眠

微服务 ARTS 打卡计划

CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

程序员小航

Java 源码 AQS 源码阅读 CyclicBarrier

极客大学-架构师训练营

9527

鹰眼 | 分布式日志系统上云的架构和实践

腾讯云大数据

大数据

智能商业时代的思考(二)网络协同抓住用户

刘旭东

微信 商业价值 数据智能 网络协同 商业智能

ARTS打卡Week 12

teoking

Mysql学习笔记:InnoDB事务和ACID模型

马迪奥

MySQL innodb

第五周作业

Vincent

极客时间 极客大学

Elasticsearch索引容量管理实践

腾讯云大数据

大数据

PB级大规模Elasticsearch集群运维与调优实践

腾讯云大数据

大数据

oeasy教您玩转 linux 010213 中文 fcitx

o

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