写点什么

Kotlin HTTP Toolkit Ktor 3.0 改进性能,并支持服务器发送事件

作者:Sergio De Simone

  • 2024-11-21
    北京
  • 本文字数:870 字

    阅读完需:约 3 分钟

Kotlin HTTP Toolkit Ktor 3.0改进性能,并支持服务器发送事件

Ktor 是一个原生的 Kotlin 框架,可用于创建异步 HTTP 服务器和客户端应用程序。Ktor 3.0 已发布。该版本采用了 kotlinx-io,虽然带来了一些破坏性更改,但性能却有所提升,并且增加了服务器发送事件、CSFR、从 ZIP 文件提供静态资源等特性。


kotlinx-io 是围绕Buffer这个抽象概念构建的底层 I/O 库。Buffer是一个可变的字节序列,它的工作方式和队列类似。也就是说,你可以向其尾部写入数据,并从其头部读取数据。Ktor 3 的破坏性变化主要影响了底层 IO API,涉及InputOutputByteReadChannelByteWriteChannel等类型。直接使用它们的开发人员需要修改他们的应用程序,迁移到新的 API。


kotlinx-io 的主要好处是提升了性能:


我们减少了 ByteReadChannel、ByteWriteChannel 与网络接口之间不必要的字节复制。这样可以提高字节转换和解析的效率,为未来的性能提升留出空间。


JetBrains 表示,根据他们自己的基准测试,Ktor 的这个新版本显著缩短了文件和套接字操作所需的时间,在某些情况下可缩短 90%。


除了性能提升之外,Ktor 3.0 最重要的变化是支持服务器发送事件。这是一种服务器推送技术,可以创建服务器到客户端的通信通道。在数据以单向流动为主的情况下,尤其是需要规避防火墙阻塞或处理连接中断时,服务器发送事件比 WebSockets 更为可取。另一方面,WebSockets 效率更高,延迟更低。


Ktor 3.0 还提供了其他一些有用的特性,包括支持跨站点请求伪造(CSRF)(可以针对任何给定的路由指定)以及直接从 ZIP 文件提供静态资源的能力。ZIP 文件从基本路径提供,可能会包括子目录,这会反映在 URL 结构中。


关于 Ktor 3,最后一点需要注意的是,Ktor 客户端现在支持将 Wasm 作为构建目标。不过,Kotlin/Wasm 仍处于 Alpha 测试阶段,因此,Ktor 3 中的 Wasm 支持尚未到达生产就绪状态。


要使用 Ktor 启动一个新项目,请访问 Ktor 网站并选择最符合你需求的插件,涉及身份验证、路由、监控、序列化等。如果你想将现有的 Ktor 2 项目改为使用 Ktor 3,请务必阅读 JetBrains 提供的迁移指南。


查看原文链接:

https://www.infoq.com/news/2024/10/ktor-3-kotlin-http-server/

2024-11-21 08:008348

评论

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

4. Python的流程控制

茶桁

Python

多方聚力共育人才,华为携手产学研赋能HarmonyOS开发者

最新动态

软件测试 | 忘记MySQL的root密码

测吧(北京)科技有限公司

测试

Screen Recorder by Omi for Mac(屏幕录制软件) v1.3.2中文版

mac

屏幕录制 苹果mac Screen Recorder by Omi

2. 初识Python脚本

茶桁

Python

5. 模块化编程

茶桁

Python

6. Python的高阶函数

茶桁

Python

聊聊测试开发工程师的职责定位问题

大卡尔

测试开发

软件测试 | Cluster的启动

测吧(北京)科技有限公司

测试

Go 语法

小万哥

Go 编程 程序员 云原生 后端

代码随想录Day38 - 动态规划(一)

jjn0703

代码随想录Day39 - 动态规划(二)

jjn0703

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

大瞿科技

1. Python的特性和语法

茶桁

Python

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

西柚子

2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线, 小青蛙每次跳跃必须落在一块石头或者岸上 给定一个长度为n的数组ar

福大大架构师每日一题

福大大架构师每日一题 左神

软件测试 | 客户端怎么访问内网数据库

测吧(北京)科技有限公司

测试

情感语音识别为人工智能赋予情感洞察的能力

来自四九城儿

自然语言理解问答对话文本数据,赋予计算机智能交流的能力

来自四九城儿

HDC2023:元服务助力梦里水乡发展智慧文旅,让服务触手可及

最新动态

3. Python3 运算符

茶桁

Python

语音识别唤醒词:让智能设备主动“听”你的声音

来自四九城儿

亲临时代,成为历史

少油少糖八分饱

读书感悟 财富 时代发展 职业道路 阅读笔记

深入理解 HDFS(二):Replica

冰心的小屋

hdfs replica 大数据存储

用React仿钉钉审批流、工作流

悠闲的水

前端 工作流 流程审批系统

7. Python的内置函数

茶桁

Python

8. 字符串详解

茶桁

Python

Programming Abstractions in C阅读笔记:p72-p75

codists

Kotlin HTTP Toolkit Ktor 3.0改进性能,并支持服务器发送事件_编程语言_InfoQ精选文章