写点什么

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

评论 2 条评论

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

太简单了,一文彻底搞懂Jenkins的用法!

Jackpop

“算法考核没过,老板找我聊了3个小时”:离职程序员重刷数学题

钟奕礼

Java 程序员 java面试 java编程

下次面试再一上来就问我线程有哪些状态,我上去就是给他一 jio

钟奕礼

Java 程序员 java面试 java编程

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

日期格式化 YYYY-MM-DD 出现时间偏移量

HoneyMoose

cmake 入门笔记

eng八戒

c makefile 工程管理 cmake C++

EasyRecovery2023个人免费版电脑数据恢复软件

茶色酒

EasyRecovery easyrecovery2023

easyrecovery2023手机版数据恢复软件下载

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

一文了解 Go 接口

陈明勇

Go golang 接口

AngularJS进阶(十六)脏值检查及语音识别集成

No Silver Bullet

语音识别 AngularJS 12月月更 脏值检查

架构实战-模块1作业

mm

架构实战营 10期

面对当下最热的多模态,为什么这些业界和学界专家说“不必追热点”

小红书技术REDtech

架构实战营模块1第2课 - 如何画出优秀的架构图

净意

刨析一下C++构造析构函数能不能声明为虚函数的背后机理?

eng八戒

继承 纯虚函数 C++

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

程序知音

Java 分布式 java架构 后端技术

亚马逊 CTO Werner Vogels:2023 年及未来五大技术趋势预测

亚马逊云科技 (Amazon Web Services)

人工智能 大数据 亚马逊云科技

这才是Git的正确学习方式!

Jackpop

Linux Network RSS RPS 疑惑

Geek_f24c45

container network veth RPS

AngularJS进阶(十五)Cookie ‘data‘ possibly not set or overflowed because it was too large

No Silver Bullet

Cookie AngularJS 12月月更

8年程序员年初被迫毕业,前后面试30家公司,如今终于拿到Offer!

程序员小毕

程序员 面试 程序人生 后端 架构师

看完这篇,还不懂JAVA内存模型(JMM)算我输

JAVA旭阳

Java 并发

如何选择正确的哈希算法?

Jackpop

33K Star!这才是程序员需要的神器。。。

Jackpop

C语言怎么给函数添加形参的默认值

eng八戒

c 函数 参数默认值

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

信号量的无序竞争和有序竞争

eng八戒

c Linux Kenel 信号量 C++

Linux 定时器介绍

eng八戒

c 定时器 Linux Kenel C++

AngularJS进阶(十四)AngularJS路由问题分析

No Silver Bullet

路由 AngularJS 12月月更

思路一转,春暖花开!动动手指,这段程序性能又双叒提升2s~15s

靠谱的程序员

MySQL MyBatisPlus Mybatis-Plus

防治“虚假种草”,小红书技术团队干了这几件大事

小红书技术REDtech

迎战大厂!“金九银十”和秋招通过率达95%的Java面试要点集锦

钟奕礼

Java 程序员 java面试 java编程

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