Ktor 1.0 正式釋出:JetBrains 出品的互聯應用框架

kotliner發表於2018-11-20

在我們開展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協議下發布。

入門

Ktor的Hello World輕便得可以用來發推:

除此之外,網站還提供了快速入門指南伺服器客戶端的參考文件,以及大量示例專案。如果您更喜歡視訊,Ryan Harter的KotlinConf 2018演講將能很好地介紹如何在後端使用Ktor。

請訪問https://start.ktor.io/ 獲取專案模板,瀏覽文件,完成並啟動您新的後端專案!如果您需要幫助,很多熱情的人們在Kotlin Slack的#ktor頻道上等待著您的參與。

請盡情享受Ktor!

譯自官方原文:Ktor 1.0 Released: A Connected Applications Framework by JetBrains

相關文章