Ktor 2.3 发布,Kotlin 编写的异步框架
Ktor 是一个异步框架,用于创建微服务、Web 应用等。从头到尾都是用 Kotlin 编写的。
Ktor 2.3.0 近日正式发布,这次更新为 Ktor 生态带来了许多新功能和改进。以下部分简要介绍了该版本的主要变化:
核心改进
WebSockets ContentNegotiation 插件的显试类型
WebSocket ContentNegotiation 插件现在支持指定显式类型:
client.webSocket("ws://localhost:8080/echo") { val originalData: Any = Data("hello") sendSerialized(originalData, typeInfo<Data>()) val received = receiveDeserialized<Data>(typeInfo<Data>()) assertEquals(originalData, received) }
Socket的结构化并发支持
来自 ktor-network
的 Socket 实现现在是一个 CoroutineScope
。这意味着它支持 cancel()
操作来立即终止连接。
close()
继续作为正常关闭工作,并将等待所有待定操作完成。
抛弃 JS 遗留配置
即将发布的 Kotlin 1.9.0 版本将删除遗留的 JS 编译器。从 Ktor 2.3.0 开始,传统的编译器不再被支持。请考虑迁移到新的 IR 编译器。
服务器
路由中的正则表达式支持
Ktor 现在允许在定义路由时使用正则表达式。使用正则表达式路由,你可以匹配一个复杂的路由,并轻松地捕获路由参数。
routing { get(Regex("^(?<name>.+)$")) { val name = call.parameters["name"] call.respondText("Hello, $name!") } }
Static Content API 清理
Static Content API 已经被完善和精简,以获得更友好的用户体验。这次我们把重点放在最常见的情况上,并为它们做了一个简单的 API:
routing { staticFiles("/static", File("files")) }
将为 /static
路径下的 files
目录中的所有文件提供服务。旧的 API 仍然可用,并将被支持。
而且我们也可以从资源中提供文件:
支持 CIO 的 100 Continue
CIO 引擎现在支持 100 Continue
状态。它开箱即用,不需要额外配置。
支持多个配置文件
通过允许使用多个文件,配置管理得到了简化。你可以使用 -config
CLI 选项传递多个配置文件。配置文件将被依次加载和合并。
支持 Jetty 11 和 Tomcat 10
对于已经包含 Jetty 或 Tomcat 依赖关系的项目,Ktor 2.3.0 增加了对 Jetty 11 和 Tomcat 10 服务器实现的支持。它们是作为单独的依赖项交付的:
dependencies { implementation("io.ktor:ktor-server-jetty-jakarta:2.3.0") implementation("io.ktor:ktor-server-tomcat-jakarta:2.3.0") implementation("io.ktor:ktor-server-servlet-jakarta:2.3.0") }
更多详情可查看:https://blog.jetbrains.com/ktor/2023/04/18/ktor-2-3-0-released/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Opera 98 稳定版发布
Opera 是一个多平台网络浏览器,由其同名公司 Opera 开发。Opera 如今是一个基于 Chromium 的浏览器。它通过其用户界面和其他功能将自己与其他浏览器区分开来。 更新 Chromium 至 112.0.5615.87 阻止侧边栏网络中的 cookies 时发生崩溃 应用 CVE-2023-2033 的补丁 添加 TabStripDragController 的自动化测试 启用 url_handling_sub_manager_unittest.cc 修复在 views::LayoutManagerBase::SetChildViewIgnoredByLayout 中发生崩溃 与 mojo ipcz 有关的冗余提交需要被删除 使在 args_default.gni 中定义的 opera_feature_* 有可能被禁用为 true 移除对 jumbo 的支持 允许在 Tab strip 上拖动一个链接 删除媒体补丁中的 set_aac_extra_data() 调用 在禁用侧边栏的情况下在新窗口中打开网站时 O-menu 消失 增加欢迎页面的超时时间 支持纯色背景 [搜...
- 下一篇
Linux 6.3 正式发布
Linus Torvalds 刚刚发布了最新的稳定版内核:Linux 6.3。他在公告写道:“这次发布很平静,上周也没什么意外。所以我们如期发布了 6.3 版本,准备好让你尽情享受。当然,这并不意味着最近几周不会潜伏着一些令人讨厌的东西,但目前从表面上看,这一切都意味着一切都很好,这确实是一个很好的受控发布周期。” Linus 还表示,Linux 6.3 的发布意味着 6.4 的合并窗口将于明天打开,他说目前已经看到许多等待他拉取的 PR,并且希望明天能看到更多开发者的提交。 据介绍,Linux 6.3 的主要变化包括: 合并了更多 Rust 代码,即将推出第一个真正的 Rust 编写的 Linux 内核驱动程序 优化文件系统,例如更好的 EXT4 I/O 性能和单独的一些 Btrfs 优化 修复了一个英特尔千兆以太网适配器,该适配器在过去三年中一直停留在其最大速度的 60% 左右 支持更多 Meteor Lake 支持 Zen 4 Auto IBRS 修复重要的 Btrfs 回归错误 …… 点此查看详情。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启