JetBrains公司发布了Ktor 3.4版本,这是其基于Kotlin的异步服务器端和客户端应用开发框架的最新更新。该版本为OkHttp客户端引擎带来了双向流功能,并引入了新的HttpRequestLifecycle插件,可在客户端断开连接时取消正在进行的HTTP请求。
Ktor 3.4于1月23日正式发布,用户可以通过ktor.io网站获取入门指南。
新的HttpRequestLifecycle插件功能介绍
新的HttpRequestLifecycle插件能够在客户端断开连接时取消正在进行的HTTP请求,这一功能在需要取消长时间运行或资源密集型请求时特别有用。当客户端断开连接时,处理请求的协程会被取消,同时客户端启动的launch或async协程也会被取消,结构化并发会清理所有资源。目前此功能仅支持Netty和CIO引擎。
动态文档生成API
Ktor 3.4还引入了用于动态记录端点的新API,该API与新的编译器插件协同工作。与从静态文件构建Swagger前端不同,该模型在运行时从路由树中嵌入的详细信息构建。为了生成文档,开发者可以通过Ktor Gradle插件启用此功能,然后它将通过新的describe API自动在代码中提供详细信息。
OkHttp客户端引擎双向流支持
在Ktor 3.4中,OkHttp客户端引擎现在支持双向流,使客户端能够同时发送请求体数据和接收响应数据,这与常规HTTP调用形成对比——常规调用中请求体必须完全发送后才能开始接收响应。双向流功能适用于HTTP/2连接,可以通过在OkHttpConfig中使用新的duplexStreamingEnabled属性来启用。
Zstd压缩算法支持
此外,压缩插件现在通过ktor-server-compression-zstd模块支持Zstd算法。Zstd是一种快速压缩算法,具有高压缩比、低压缩时间和可配置的压缩级别等特点。
Q&A
Q1:Ktor 3.4的HttpRequestLifecycle插件有什么作用?
A:HttpRequestLifecycle插件能够在客户端断开连接时取消正在进行的HTTP请求,这在需要取消长时间运行或资源密集型请求时特别有用。当客户端断开连接时,处理请求的协程会被取消,结构化并发会清理所有资源。目前仅支持Netty和CIO引擎。
Q2:Ktor 3.4的双向流功能有什么优势?
A:双向流功能使客户端能够同时发送请求体数据和接收响应数据,与常规HTTP调用不同,不需要等待请求体完全发送后才开始接收响应。该功能适用于HTTP/2连接,可以通过OkHttpConfig中的duplexStreamingEnabled属性启用。
Q3:Ktor 3.4如何改进文档生成功能?
A:Ktor 3.4引入了动态记录端点的新API,与编译器插件协同工作。该模型在运行时从路由树中嵌入的详细信息构建,而不是从静态文件构建Swagger前端。开发者可以通过Ktor Gradle插件启用,然后通过新的describe API自动在代码中提供详细信息。
好文章,需要你的鼓励
火箭实验室(Rocket Lab)宣布计划以现金加股票方式,斥资80亿美元收购主要卫星运营商铱星通信(Iridium Communications),交易预计于2027年中完成。铱星目前运营着由66颗活跃低轨卫星组成的星座网络,拥有约255万活跃用户,2024年营收达8.717亿美元。收购完成后,Rocket Lab计划借助其新型重型运载火箭Neutron及Lightning卫星平台,扩大铱星星座规模,开拓未被覆盖的市场并降低发射成本。
腾讯等机构提出ViQ框架,通过两阶段渐进量化训练,让离散视觉编码在多模态理解和图像重建上同时追平连续特征编码器,训练速度最高提升70%。
音乐流媒体平台Tidal宣布,将于7月中旬启用自动化工具,对完全由AI生成的音乐添加"AI"标识,并移除具有欺诈性质的曲目。平台还将取消AI生成音乐的版税资格,仅向真人创作、演唱的原创音乐开放变现渠道。此外,Tidal明确将高频异常上传、干扰真实艺术家等行为列为欺诈活动。Deezer、Spotify等竞争对手此前已推出类似检测机制,流媒体行业正加速构建AI内容治理体系。
香港科技大学与华为联合提出LISA训练方法,通过让副网络对齐"似然分数",将ControlNet等图像生成模型的训练收敛速度提升逾2.78倍,同时改善图像质量与条件控制精度。