Ktor 2.1 发布,Kotlin 编写的异步框架


Ktor 是一个异步框架,用于创建微服务、Web 应用等。从头到尾都是用 Kotlin 编写的。

Ktor 2.1.0 近日正式发布,除了新的功能和错误修复之外,还特别发布了三个新工具的测试版。让我们逐一看看这些工具。

本地命令行工具

Ktor 提供了两种方法来简化创建新的应用程序模板 —— IntelliJ IDEA 或 start.ktor.io。

我们现在通过提供一个在 Kotlin/Native 中构建的命令行工具来扩展它。除了为你生成一个 Ktor 服务器应用程序外,如果你的系统没有安装 JDK,它还负责下载一个 JDK。

要创建一个新的项目,只需输入 :

ktor generate {projectName}

一旦完成(如果需要的话,还包括下载 JDK/Gradle),它就会构建这个项目

剩下的就是运行它了

该工具目前可用于 macOS 和 Linux,将在之后提供 Windows 的支持。

Yeoman 生成器

与命令行客户端类似,Ktor 也添加了 Yeoman 支持。如果你不熟悉 Yeoman,它是一个命令行工具,允许你为各种项目轻松生成脚手架。

如果你没有安装 Yeoman,请确保你首先安装 node/npm(与 14.0.0 以上版本兼容)。一旦你有了这个,你可以运行。

npm install -g yo

This installs yeoman globally on your system. Next step is to install the Ktor generators:

这将在你的系统上全局安装 Yeoman。下一步是安装 Ktor 生成器。

npm install -g generator-ktor

一旦安装完毕,你可以简单地创建一个新的项目目录,并使用以下命令运行生成器

yo ktor

Gradle Deployment 插件

Ktor 的目标之一是使整个开发尽可能地顺利和愉快。当然,人们很少会开发一个应用程序而不去部署它。

为此,最近发布了一个新的 Gradle 部署插件的测试版(注意,使用向导新创建的项目将默认添加这个插件)。现在你可以在 Gradle 文件中定义你希望你的 Ktor 应用程序如何被部署。

虽然它目前只适用于 Gradle,但计划也提供 Maven 支持。

YAML Configuration 支持

除了使用代码或 HOCON 配置 Ktor 应用程序外,你现在还可以使用 YAML,它也可用于 Ktor 本地服务器应用程序。以下面的 HOCON 配置为例:

ktor {
deployment {
port = 8080
}
application {
modules = [ com.example.ApplicationKt.module ]
}
}

在 YAML 中,相当于:

ktor:
deployment:
port: 8080
application:
modules:
- com.example.ApplicationKt.module

其他

  • 将 Kotlin 更新到 1.7.0
  • Darwin:允许设置自定义 NSURLSession
  • 支持在调用时设置缓存选项
  • Java 引擎:允许配置 HTTP 版本
  • 将 jteVersion 从 2.0.3 升级到 2.1.2
  • ……

更多详情可查看:https://blog.jetbrains.com/ktor/2022/08/12/ktor-2-1-0-released-and-it-comes-with-goodies/


相關推薦

2023-04-24

用等。从头到尾都是用 Kotlin 编写的。 Ktor 2.3.0 近日正式发布,这次更新为 Ktor 生态带来了许多新功能和改进。以下部分简要介绍了该版本的主要变化: 核心改进 WebSockets ContentNegotiation 插件的显试类型 WebSocket ContentNegotiation

2022-12-19

日确定了 2023 年 Ktor 的路线图,并将专注于 3.0.0 版本的发布。虽然一个主要版本通常通常会带来重大的变化,但 Ktor 3.0.0 大多数变化是关于 API 和包,特别是: 将发布一直在研究的新的简化路由 API。 要切换到 Tomcat 11、Jetty

2022-05-04

使用 Kotlin 构建异步服务器和客户端的 Web 框架,上个月发布了重要的新版本 2.0,并于近日发布了首个补丁更新 2.0.1。 Ktor 2.0 引入了许多新功能,以及破坏性变化,官方称这让他们有机会执行一些维护工作并摆脱遗留决策。尽

2022-07-02

Wiki:https://gitee.com/pp/SmsForwarder/wikis/Home PS. 自 2022-06-09 发布 3.0 以来,经过几个小版本的迭代,目前已经趋于稳定,3.x 版本的7天活跃用户占比已攀升到 31.81%,想要升级的用户可以试试了 Q:升级到 3.x 发现很耗电,

2023-04-15

JetBrains 在 KotlinConf’23 大会上宣布,Compose Multiplatform 已支持 iOS,目前处于 alpha 阶段。至此,Compose Multiplatform 基本实现了全平台支持:iOS、Android、Windows、macOS、Linux 和 Web。 Compose Multiplatform 是用于跨多个平台共享 UI 的

2023-04-03

Typing Learner v2.0.3 已经发布,Kotlin 编写的背单词软件 此版本更新内容包括: Typing Learner 2.0 换名字了,新版的名字为:幕境。 新版的UI做了很大的调整,删除了一些不常用的快捷键。 新增功能 视频播放器,以弹幕的形式复

2023-10-14

语言开发而备受开发者青睐。 Eclipse Vert.x 版本 4.4.6 现已发布,此版本修复了自 Vert.x 4.4.5 发布以来已经报告的一些错误。此外还披露了 CVE-2023-44487,这是一个会影响 HTTP/2 服务器的 bug。Vert.x 升级到 Netty 4.1.100.Final,

2023-03-31

语言开发而备受开发者青睐。 Eclipse Vert.x 版本 4.4.1 已经发布。自 Vert.x 4.4.0 发布以来已经报告了不少错误,项目团队对此表达了感谢。具体更新内容包括: vertx-web 升级到 GraphQL-Java 20.1 HttpServerRequest.formAttributes() 有多余的

2022-08-24

年前的 2017 Google I/O 大会上,谷歌宣布:官方正式支持将 Kotlin 作为 Android 开发的 First-Class(一等公民)语言。自此,Kotlin 开发商 JetBrains 和谷歌一直围绕 Kotlin 进行紧密合作,并共同创立了 Kotlin 基金会。 正如最初 I/O 公告中

2022-10-28

Meta 发布了一篇博客表示,正在将其 Android 应用的 Java 代码迁移到 Kotlin,并分享了这一过程中的一些经验。 该公司认为,Kotlin 是一种流行的 Android 开发语言,与 Java 相比具有一些关键优势。“因此,在我们努力使我们的开发工

2024-07-25

、可跨多个进程通信) 分布式事件总线(类似 MQ、Redis 发布订阅机制;可跨多个机器通信、可跨多个进程通信) 在编码风格上,ioGame 为开发者提供了类 MVC 的编码风格(无入侵的 Java Bean ),这种设计方式很好的避免了类

2024-08-09

、可跨多个进程通信) 分布式事件总线(类似 MQ、Redis 发布订阅机制;可跨多个机器通信、可跨多个进程通信) 在编码风格上,ioGame 为开发者提供了类 MVC 的编码风格(无入侵的 Java Bean ),这种设计方式很好的避免了类爆

2023-11-24

次 commit、一千多个 issue、讨论和 PR 之后,Rocket v0.5 正式发布了。 Rocket 是支持异步的后端Rust Web框架,专注于可用性、安全性、可扩展性和性能。它使编写安全的Web应用程序变得简单,而不会牺牲生产力或性能。 Rocket v0.5

2024-06-22

在此之前可能引发 bug 的场景如下 【游戏逻辑服 A】 发布事件。 【游戏逻辑服 B】 订阅者接收事件并处理,在处理过程中又调用了【游戏逻辑服 A】 某个 action 方法。   该业务场景,会在多服单进程下会引发调用