写点什么

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:243283

评论 2 条评论

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

五个核心能力打造普惠金融商业化发展模式

易观分析

普惠金融

关于微软 Edge 浏览器的 Tracking Prevention 特性在 Angular 应用中的影响

汪子熙

JavaScript typescript Web web开发 7月月更

leetcode 455. Assign Cookies 分发饼干(简)

okokabcd

LeetCode 数据结构与算法 贪心算法

项目进度管理和风险管理记录

老猎人

LeetCode-119. 杨辉三角II(java)

bug菌

Leet Code 7月月更

拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

程序员小毕

程序员 程序人生 计算机网络 java面试 TCP协议

【容器篇】Docker实现资源隔离的秘籍

技术小生

Docker 7月月更

【愚公系列】2022年7月 Go教学课程 010-数据类型之布尔型和字符类型

愚公搬代码

7月月更

大数据培训Spark数据倾斜问题的解决方法

@零度

spark 大数据开发

Python|分析QQ群聊信息,记录词频并制作词云

AXYZdong

Python 7月月更

一招,让停车管理不再难

天翼云开发者社区

数字化 云平台

数据也能进超市

天翼云开发者社区

云计算 大数据 云平台

易观分析加入智能投研技术联盟,共促行业数智化发展

易观分析

易观新闻

阿里云第四届全球数据库大赛火热开赛,40万奖金广纳英才

科技热闻

APISIX 如何与 Hydra 集成,搭建集中认证网关助力企业安全

API7.ai 技术团队

云原生 网关 身份验证 APISIX 网关

Python 入门指南之标准库概览

海拥(haiyong.site)

7月月更

火眼金睛,天翼云助力打造城市视觉中枢

天翼云开发者社区

大数据 云平台

内行,阿里大牛离职带出内部“高并发系统设计”学习手册

程序知音

Java 阿里巴巴 程序员 后端 高并发

揭露数据不一致的利器 —— 实时核对系统

Shopee技术团队

数据分析 后端

java零基础入门-多态

喵手

Java 7月月更

天翼云携手华为,强强联合,共创数据存储新生态

天翼云开发者社区

存储 数字化

大数据ZooKeeper(一):基本知识和集群搭建

Lansonli

大数据 zookeeper 7月月更

2022年中国互联网医疗年度盘点

易观分析

互联网医疗

大数据环境搭建:​​​​​​​​​​​​​​​​​​​​​Hadoop编译和分布式环境搭建

Lansonli

大数据 hadoop 环境搭建 7月月更

告别缺电焦虑!充电桩装上“智慧大脑”

天翼云开发者社区

云主机 云平台

为安全而生!云安全漫谈开讲啦

云安全 云计算运维

2022数十位Java架构师汇总产出,最新25个技术栈“Java面经”

程序知音

Java 程序员 面试 后端 八股文

数据库审计部署方式有哪些?哪种比较好?

行云管家

数据库 数据库审计 数据库审计部署

小程序表单组件-1

小恺

7月月更

百家号基于AE的视频渲染技术探索

百度Geek说

视频 视频渲染

数据库审计和日志审计的三大区别分析

行云管家

数据库 日志 日志审计 数据库审计

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