写点什么

Ktor 1.0 发布:JetBrains 推出的 Kotlin Web 框架

  • 2018-11-20
  • 本文字数:1301 字

    阅读完需:约 4 分钟

Ktor 1.0发布:JetBrains推出的Kotlin Web框架

以下由Kotlin中文站翻译自JetBrains官方博客,本文由 Kotlin 中文站授权转载:


在我们开展 Kotlin 工作时,我们实现了很多特性,以便用于构建符合使用习惯且高效的 API。我们始终期待着能有一个将这些特性发挥得淋漓尽致的 Web 框架。今天,我们终于可以说已构建了这样的框架!欢迎你,刚迈向成熟的 Ktor1.0。


Ktor 是一个使用 Kotlin 在互联系统中构建异步服务器与客户端的框架 。由 Kotlin 团队创建,因此它充分利用了语言特性,为开发人员提供了出色的开发体验和运行性能。


Ktor 完全是由协程构建起来的,使得编写复杂的异步代码简单得像同步代码一样。协程的运行也非常高效。同时,Kotlin 的特性允许我们提供领域专用语言 (DSL) – 一种简洁且开发人员易于使用的 API,用于配置应用程序,这些代码就像魔法一样神奇。


当然,Ktor 不是使用 Kotlin 构建服务端应用程序的唯一选择。我们希望能看到其他的框架,能如同 Spring 和 Vert.x 那样为 Kotlin 提供”一等公民”的支持,使用这些框架能确保您的投资及开发经验不会白费。与此同时,协程和 DSL 是 Ktor 独特的优势,相信这会是您新的后端项目或微服务的一个好选择。


Ktor 已经部署在许多大规模运营项目的生产环境中。例如,HLTV.org 每月有大约 2 亿次的浏览量,经过 Ktor 的总共有大约 31 亿次的浏览量。Ktor 在最新的ThoughtWorks Technology Radar榜上有名。

详细内容

Ktor 有两个重要组成部分,其一是运行在 JVM 上的 HTTP 服务器框架,另一个是多平台 HTTP 客户端。作为 JetBrains 的项目,Ktor 自然会提供有用的工具,帮助您快速开始新的项目。


服务器


HTTP 服务器部分基于经过验证的成熟技术构建,如 Netty,Jetty 和 Java servlet。当使用像 Netty 或 Jetty 这样的轻量级引擎时,它会有超快的启动速度,并在秒级时间内准备好接受连接。它完全符合 The Twelve-Factor 规范,易于在容器中部署,并且可以轻松嵌入到桌面(甚至 Android)应用程序中。您也可以在 Tomcat 等应用程序服务器中运行它。


Ktor 提供了丰富且易于使用的可扩展机制,在此基础上实现了大多数内置功能。第三方功能与内置功能区别不大。开箱即用,Ktor 包括这些基本功能:会话,身份验证,JSON 序列化,流行模板引擎,Web 套接字,metrics 等等。它还支持高效的开发工作流程,具有快速启动,自动重新加载以及易于使用的单元编写和集成测试工具。


客户端


客户端也是异步的,基于与服务器相同的协程和 IO 原语构建。这使其非常适合于构建异步微服务架构,将所有后端功能连接到异步管道。


客户端采用多平台库开发,目前支持 JVM,JS,Android 和 iOS。这使得可以以统一的方式检索移动设备和网页上的数据,且允许应用程序执行或构建复杂的匿名函数链来响应成功或失败。


工具


最后,这些工具可自由定制你所需要的功能,并使用 Ktor 获得完整工作的入门应用程序。这既适用于Web,也适用于 IntelliJ IDEA 的插件


与其他 Kotlin 库一样,Ktor 是免费的开源软件,在GitHub上开发,并在 Apache 2 协议下发布。


除此之外,网站还提供了快速入门指南,服务器和客户端的参考文档,以及大量示例项目。如果您更喜欢视频,Ryan Harter 的KotlinConf 2018演讲将能很好地介绍如何在后端使用 Ktor。


2018-11-20 18:243199

评论 2 条评论

发布
用户头像
持续关注
2018-11-21 08:54
回复
没有更多了
发现更多内容

Qt | 文件信息 QFileInfo

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

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

软件测试 测试 offer

软件测试 | 测试开发 | 接口自动化中如何完成接口加密与解密?

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

Python 测试 自动化测试

FreeRTOS记录(三、RTOS任务调度原理解析_Systick、PendSV、SVC)

矜辰所致

Svc FreeRTOS 9月月更 Systick PendSV

Qt | 关于矩形大小的使用 QSize

YOLO.

c++ qt 9月月更

Qt | 关于对象树和元对象的相关问题

YOLO.

c++ qt 9月月更

iOS端如何实现带UI截屏分享

MobTech袤博科技

ios

软件测试 | 测试开发 | 智能遍历测试在回归测试与健壮性测试的应用

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

软件测试 测试

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

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

测试 自动化测试

软件测试 | 测试开发 | 测试工程师用 Shell 定位 Bug 的正确姿势

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

测试 bug

Qt | Qt中的一些使用在容器类上的算法

YOLO.

c++ qt 9月月更

字节跳动A/B实验背后的秘密:样本量计算

字节跳动数据平台

数据分析 前端 ab测试 统计原理

MySQL系列——索引、视图、DBA常用命令、数据库设计三范式

胖虎不秃头

MySQL 数据库· 9月月更

软件测试 | 测试开发 | 测试人生 | 入行未满3年拿下AI领域上市公司30W+ offer,他靠的是什么?

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

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~

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

软件测试 测试 offer

基于Hudi的湖仓一体技术在Shopee的实践

Shopee技术团队

Hudi LakeHouse 湖仓一体

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

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

测试 测试用例

MySQL系列——表的创建、插入、修改、删除数据

胖虎不秃头

MySQL 数据库 9月月更

Qt | 关于点的坐标的使用 QPoint

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 接口自动化测试如何进行认证?

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

测试 自动化测试

软件测试 | 测试开发 | 视频编辑SDK测试

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

软件测试 sdk

数据可视化系列教程之组件通信

云智慧AIOps社区

前端 JavaScrip 可视化数据

Qt | 关于容器类的一些总结

YOLO.

c++ qt 9月月更

Qt | 关于样式表的使用 QStyleSheet

YOLO.

c++ qt 9月月更

Qt | 关于重绘事件处理函数 paintEvent()

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

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

测试 bug

MySQL系列——约束、存储引擎、事务

胖虎不秃头

MySQL 数据库· 9月月更

软件测试 | 测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

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

软件测试 测试 软件测试和开发

关于QPalette的使用

YOLO.

c++ qt 9月月更

望繁信科技携手复旦大学教育发展基金会,齐心共助公益慈善义拍

望繁信科技

Qt | 文件操作 QFile

YOLO.

qt 9月月更

Ktor 1.0发布:JetBrains推出的Kotlin Web框架_编程语言_Roman Belov_InfoQ精选文章