阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

评论 2 条评论

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

Split to Be Slim: 论文复现

华为云开发者联盟

人工智能 华为云 论文 华为云开发者联盟 企业号 4 月 PK 榜

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

架构师之道

算法

AI数字人产品“世优BOTA”发布会落幕,世优科技纪智辉演讲回顾

联营汇聚

Apache Flink ML 2.2.0 发布公告

Apache Flink

大数据 flink 实时计算

Apple 的 plist 编辑器入门指南:基础操作与高级功能详解

雪奈椰子

华为云GaussDB坚持技术引领,以数字化转型激活金融科技新动能

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【FAQ】统一扫码服务常见问题及解答

HMS Core

HMS Core

2023云数据库技术沙龙MySQL x ClickHouse专场成功举办

NineData

MySQL 腾讯云 阿里云 云数据库 技术沙龙

常用工具

流火

没有主机跑开源软件?速来牧云助手免费领一台!

百川云开发者

云计算 开源 云主机 教程 免费

Go 语言快速入门指南:GET 和 POST 方法

宇宙之一粟

Go HTTP post GET 三周年连更

如何通过C#/VB.NET代码将PowerPoint转换为HTML

在下毛毛雨

html PowerPoint 文档转换

为开发者搭建创新舞台 OpenHarmony创新赛正式启动

最新动态

有道CEO周枫:当我们谈论大模型时,应该关注哪些新能力?

有道技术团队

手语识别:解锁语言交流的新时代

来自四九城儿

文本搜索工具ack与grep

坚果

Linux 三周年连更

赋能开发者,开放原子全球开源峰会期待你的声音!

开放原子开源基金会

大数据 开源 开源软件

从零学习SDK(9)SDK的局限

MobTech袤博科技

世优科技AI数字人产品“世优BOTA”发布!全面提升AI虚拟员工能力

联营汇聚

发送GET请求时,浏览器请求的参数是指什么

linux大本营

HTTP url GET

qemu怎么用

linux大本营

qemu

低代码平台虽臭名远扬,但用起来却真香

这我可不懂

低代码 JNPF

编程中最难的就是命名?这几招教你快速上手

阿里巴巴云原生

阿里云 编程 云原生

FBEC大会 | 瑞云科技 CTO 赵志杰:元宇宙时代的基础设施——实时云渲染

3DCAT实时渲染

实时渲染 实时云渲染 实时渲染云

使用Plist编辑器——简单入门指南

Rust、Go 和 Swift 在性能和并发性方面有何差异?

非凸科技

Go swift 性能 编程语言 高并发

浅析低代码开发的典型应用构建场景

力软低代码开发平台

DevOps 与研发效能资深技术专家张乐:研发效能的升维思考与降维执行

万事ONES

【源码分析】【seata】at模式分布式事务-tm实现逻辑

如果晴天

源码分析 分布式事务 seata Seata框架

九层天塔DApp合约系统开发搭建

薇電13242772558

NFT

C语言system函数判断返回错误

linux大本营

C语言

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