Ktor 是一个由 Kotlin 团队打造的 Web 框架,可用于创建异步、高性能和轻量级的 Web 服务器,并使用 Kotlin 惯用的 API 构建非阻塞的多平台 Web 客户端。...如果使用 Kotlin Multiplatform 构建跨平台项目时,使用 Ktor 的客户端作为 Http 框架是一个不错的选择。...客户端是一个支持 JVM,JS,Android 和 iOS 的多平台库,现在经常在跨平台移动应用程序中使用。 二. Ktor 服务端的使用 我们可以通过多种方式运行 Ktor 服务端程序: ?...应用时,可以使用 fat jar 或者 war 包。...我们以 fat jar 为例,使用 gradle 的 shadow 插件可以方便地打包 Ktor 的应用。
Ktor: Kotlin Web后端框架 Web backend framework for Kotlin 快速开始入门 非常感谢您亲爱的读者,大家请多支持!!!...有任何问题,欢迎随时与我交流~ ---- Ktor 简介 Ktor 是一个用于在 Kotlin 中快速创建 web 应用程序的框架。...2.1/org.jetbrains.ktor/ktor-netty/0.4.0/f8809d15d9b447b669e8514f14addcb3586dcd26/ktor-netty-0.4.0.jar.../ktor-hosts-common-0.4.0.jar, /Users/jack/.gradle/caches/modules-2/files-2.1/org.jetbrains.ktor/ktor-core.../0.4.0/be0937d74f19862e8087b08a3b2306de65aa6f12/ktor-core-0.4.0.jar, ... 2017-09-05 22:40:53.717 [main
前言 在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。...Ktor服务 该框架是为 Kotlin 编写和设计的。...所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自己代码中的class ,也会包含一些第三方依赖的jar,也就是把自身的代码和其依赖的jar全打包在一个jar里面了,所以就很形象的称其为...Boot 优点 1、平台成熟度和生态系统对于大多数日常任务,Spring的编程范式已经有了解决方案,也是很多程序员习惯的方式。...此外,starter和auto-configuration的概念简化了开发 2、专家多,文档详细 我想很多人都会同意 Spring 在不久的将来仍将是 Java/Kotlin开发领域领先的框架。
Ktor服务 该框架是为 Kotlin 编写和设计的。...该框架目前支持 Java、Kotlin 和 Groovy 语言。依赖是在编译时注入的,与 Spring Boot 相比,这会导致更少的内存消耗和更快的应用程序启动。...所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自己代码中的class ,也会包含一些第三方依赖的jar,也就是把自身的代码和其依赖的jar全打包在一个jar里面了,所以就很形象的称其为...Boot 优点 1、平台成熟度和生态系统对于大多数日常任务,Spring的编程范式已经有了解决方案,也是很多程序员习惯的方式。...此外,starter和auto-configuration的概念简化了开发 2、专家多,文档详细 我想很多人都会同意 Spring 在不久的将来仍将是 Java/Kotlin开发领域领先的框架。
通过KMM开发者可以在 iOS 和 Android 应用程序之间共享通用代码,并仅在必要时编写特定于平台的代码。 ...上面官方的描述说了这么多,简单的来说就是KMM注重业务逻辑跨平台,和Flutter、Compose完全相反。即使如此,在这个都想着跨别人的年代,KMM也称自己并没有说过不会做UI的跨平台......由于KMM还不是特别的成熟,所以建议开发者将Kotlin插件也升级到最新版本,避免出现一些兼容性问题。...在 Kotlin Multiplatform 中,共享模块中的不同源集可以针对不同的平台。 如下图所示。 支持多个目标的多平台库,可以在公共源集 commonMain 中使用。...首先我们将用到依赖添加进来,这里主要有Kotlin协程、序列化(Ktor使用要求)、和Ktor,Ktor是一个可以用于HTTP请求的网络框架,如果读者不熟悉的话可自行查看。代码如下所示。
同时Kotlin也表示将在2023年发布KMM的稳定版本。 届时Compose-jb + KMM 将实现Kotlin全平台。...果然,不运行不知道,一运行吓一跳 这个问题困扰了我两三天,实在是无从下手,毕竟现在相关的资料很少,经过N次的搜索,最终解决的方案很简单:Kotlin版本升级至1.8.0就可以了。...实现一个双端网络请求功能 在之前的第1弹和第2弹中,我们分别实现了在Desktop、和Web端的网络请求功能,现在我们对之前的功能在iOS上再次实现。...一个尴尬的问题 我一直认为存在一个比较尴尬的问题,那就是像上面实现一个完整的双端网络请求功能需要用到KMM + Compose-jb,但是KMM与Compose-jb并不是一个东西,但是用的时候呢基本上都是一起用...所以,这个系列我觉得改名为:Kotlin跨平台系列更适合一些,要不然以后就会存在KMM跨平台第n弹,Compse跨平台第n弹....
非常值得庆祝的是,??Ktor 1.0 正式发布了??,Ktor 中文站也已更新。 Ktor 是 JetBrains 官方出品的互联应用框架。...使用该框架非常易于开发异步的服务器与客户端,并且能够充分利用 Kotlin 以及协程的优势。 Ktor 中文站是官方英文站的中文翻译(目前还在翻译中,欢迎组团一起)。...上周六,有幸在 JetBrains 开发者日上分享了《Ktor——Kotlin 多平台异步 Web 框架实践》 ,这两天也把讲稿及相关 demo 整理了下。...这份讲稿比当天用的那份要新一些(其中的截图也能看出是 11 月 20 日的),补充了当场提到但没有在讲稿中列出的 Ktor 适用场景: 多平台项目,同时开发客户端与服务端,比如同时开发 WebSocket...服务框架使用 Ktor,100% Kotlin 开发,见下图: 另外,在 Kthumbor 项目中采用了测试驱动开发的方式(其中测试框架使用的是 KotlinTest),先写测试用例后写实现。
,此外,Kotlin 的跨平台功能将为 Android 和 iOS 应用程序等组件之间共享业务逻辑,服务器也可以与 Web 和移动客户端共享逻辑,而且多平台库让日常的开发变得便捷。...详情请阅读:https://kotlinlang.org/docs/reference/native-overview.html 多平台项目和工具 Kotlin 团队称,能在所有平台上运行是 Kotlin...的目标,但达成这个目标的前提是,得先在多平台间实现代码共享,通过支持 JVM、Android、JavaScript 和 Native,Kotlin 现在已经可以处理现代应用程序的任何组件。...虽然 Kotlin 的多平台功能仍处于试验阶段,但 1.3 版本算是向前迈出了一大步。 Kotlin 1.3 还附带了一组多平台库,涵盖了 HTTP、序列化和协同管理等日常任务。...编写多平台代码最简单的方法是依赖这些库,你还可以创建自己的多平台库,将特定平台的依赖项包装到通用 API 中。
因为项目需要,要求把原本基于PC开发的基于RPC的项目移植到android,我就遇到了thrift/swift在android平台无法运行的问题。...-1.0.0.jar中没有主清单属性 好么,这thrifty-compiler-1.0.0.jar敢情只是一个普通的jar,没有指定Main-Class,没办法运行,这官方说明写不对啊 经过反复尝试,最终确定问题的原因...,不是Fat-jar),而通过查看thrift的gradle脚本,可以看到脚本中已经提供了shadowJar这个task用于生成thrifty-compiler的Faj-Jar,所以要想得到可执行的thrifty-compiler.jar...编译thrifty thrifty是用kotlin语言写的,项目构建工具是用gradle,所以要编译thrifty,需要安装kotlin compiler和gradle....外还生成了一个22MB大小的thrifty-compiler-1.0.0-all.jar文件,这个就是包含了thrifty-compiler所有依赖库的可运行fat-jar。
作者 | Andrea Messetti 译者 | 平川 策划 | 丁晓昀 Ktor 是一个用于创建异步客户端和服务器应用程序的 Kotlin 框架。...经过 1 年多的开发,2.0 版本于近日发布,在带来新特性的同时,也带来了破坏性的变化。...它还引入了 Kotlin/Native 支持,这是对 Ktor 1.6 中添加的 GraalVM 支持的补充。...为了帮助开发者从以前的版本迁移到新的 2.0 版本,Ktor 团队提供了相关文档,并在 IntelliJ IDEA 中提供了一个迁移工具,其目的是修复所有与破坏性变化和重构包相关的问题。...它还支持各种模板引擎,如 Mustache、Thymeleaf 和 Velocity。 Ktor 是 JetBrains 的官方产品,由 JetBrains 的团队和社区共同开发。
Kotlin 是个目标面向多平台的语言,这其中当然包括以 JavaScript 为核心的前端和服务器端的后端应用。...在观影指南系列的最后一篇,就来和各位同学关注一下 Kotlin 如何转换成前端 JS 及在服务器端应用的发展现况。...Ktor 是由 JetBrains 自主研发的 Web 框架,100% 由 Kotlin 打造。身为安卓程序员、已经会写 Kotlin 的你,将可以用自己已经熟悉的语言写服务器端的 API!...在这场演讲里,讲师 Dan Kim 将通过一个真实的示例来说明如何轻松使用 Ktor 构建 API 服务,以及常见的业务需求包括:身份验证、获取数据、发布数据和部署。...而对 Kotlin 在后端应用有兴趣的同学,则可以参考官方文档里的服务器端概览,以及 Ktor 官网、Kotless 在 Github 上的页面。对了!
在构建这个 PoC (Proof of Concept,概念证明)的过程中,我们经历了一系列的架构决策。为什么是 A 而不是 B 一些简短的代码示例。 过程中我们遇到的问题。...即,它可以同时满足两类人的需求,使用 Markdown 和不使用 Markdown,他们能都从编辑器上获得自己的鼠标(markdown)和键盘(富文本)。...如添加 ArchGuard DSL 的 jar 包,以及对应的 Kotlin Scripting、Kotlin Jupyter 的 Jar。 添加 % archguard Magic。...Scripting 会有一系列的问题,这个时候需要 requiresUnpack。...详细见:Spring Gradle 插件文档:《Spring Boot Gradle Plugin Reference Guide》,只是对应的解释说明:必须从 fat jars 中解压才能运行的库列表
微框架之旅 说得够多了,让我们看看我最喜欢的项目,看看它们有多简单。 Javalin ? 一个用于Java和Kotlin的简单web框架。 一个用于Java和Kotlin的简单web框架。...Javalin是在Kotlin编写的,它支持Java和Kotlin。如果您想编写一个漂亮的REST API,那么Javalin是一种乐趣。 Javalin正在积极开发中,每隔几周就会发布新版本。...ktor 易于使用,有趣和异步。 不是Java,而是Kotlin微框架。Ktor是由JetBrains公司赞助和开发的,JetBrains是Kotlin的创造者,它致力于使开发变得简单和有趣。...我还没有机会测试它,但是基于Kotlin爱好者和JetBrains的支持,值得一提。 Ktor还没有发布1.0.0版本,但应该是在今年的某个时候。...以下是我没有进一步探究的一些问题,但仍然可以进行研究和考虑: Ratpack—Ratpack是一组用于构建可伸缩HTTP应用程序的Java库。它是一个精干而强大的基础,而不是一个包罗万象的框架。
故障出现 近期我的mirai机器人启动时遇到这个问题,表现为机器人的http API接口的端口无法连接,mirai机器人启动时出错。...kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) 自己尝试重启docker和重建...docker均无法解决,经过网络搜索,找到了问题原因和解决方法。...问题原因 来自githubSinCerely023: 个人认为是mcl没有更新2.0版本mah但是mirai-console更新到了最新版本导致的问题。...另外提醒一下最新版本的Graia有bug且无法适配mah 2.0,适当回退版本。 解决方法 先通过以下命令指定特定版本的mcl,再重新启动mcl: .
KMM更像是营销术语,我们不用纠结Mobile这个词,你要知道的是,下文我们所说的KMM就是指的Kotlin跨平台不仅限于移动端就行了。 KMM可以简化多平台应用程序的开发。...这里添加网络请求库Ktor和序列化的依赖,因为是Kotlin跨平台嘛,Ktor是Kotlin推出的网络请求库,所以肯定使用Ktor是最佳选择。...这样我们就确保多平台下使用同一API来调用,调用方不需要关注具体的实现。...和刚刚提到的组件问题一样,随着Compose Multiplatform技术的成熟,早晚官方会推出一个新的插件来同时支持KMM和Compose Multiplatform。...Flutter永远都会存在语言壁垒的问题,但是KMM和Compose Multiplatform对Android开发者来说几乎是赠送的。
("fat", true)) { task.enabled = false } } } 总结 iOS ObjC 原生库,KMM 库,桥接和双指令集的流程如图所示。...而这两者是目前为数不多可用的 Kotlin 多平台库。...这个问题是否解决将决定 KMM 能否用于生产环境,经过我们的研究和评估后制定了一系列的解决方案。...从 1.4.x 版本开始 JetBrains 将 Kotlin 迭代的重点放在了多平台领域。...Ktor 与 kotlinx 库等官方库是目前 Kotlin 跨平台的中坚力量,Ktor 目前可以在多平台环境提供稳定的 HTTP 请求、数据序列化/反序列化功能,是相当强大的 Kotlin 多平台网络库
Kotlin抛出异常和try-catch-finally和Java中的类似!但是Kotlin中throw和try都是表达式, 意味着他们可以赋值给某个变量,这一点在处理边界问题的时候很有用!...而默认方法则可以很好的解决这个问题。使用默认方法的新接口如下所示。...目的 接口的默认方法的主要目标之一是解决接口的演化问题。当往一个接口中添加新的方法时,可以提供该方法的默认实现。对于已有的接口使用者来说,代码可以继续运行。...兼容 Java 的做法,本来就是权宜之计,兼容必然带来新旧两种观念的冲突以及丑陋的发生 9.2 Kotlin与Java互操作 9.2.1 Kotlin无缝调用第三方jar库 9.2.2 执行shell...12.3 使用Kotlin的Web框架Ktor开发Web应用 Ktor is a framework for quickly creating web applications in Kotlin with
如果你想使用Kotlin来进行跨平台开发,可以构建一个Kotlin多平台项目,也可以分别单独开发一套iOS和Android的项目工程,但是不管使用哪种方式,你都必须同时对iOS和Android的原生开发有足够多的了解才行...而如果你想开发两个原生的应用程序,但是要尽可能多地共享两个平台之间的代码,那么可以考虑构建一个Kotlin多平台项目。...不过这对于缺少经验的开发者而言应该不是最佳的选项,因为Kotlin多平台功能还很新,能够使用的工具和第三方库也非常少。...而如果你想要开发跨平台的应用程序,那么就需要在Kotlin多平台项目和Flutter之间做选择了。...正如前面所讨论的,Flutter是将一套独立的开发流程应用到了两个移动平台上面,而Kotlin多平台项目则需要你对Kotlin和每个平台的原生开发都有一定的了解才行。
Kotlin Multiplatform Mobile ( KMM ) 是一个 SDK,旨在简化跨平台移动应用程序的创建。...在 KMM 的帮助下,您可以在 iOS 和 Android 应用程序之间共享通用代码,并仅在必要时编写特定于平台的代码。...KMM用纯Kotlin编写一次代码,即可在iOS和Android上运行,开发应用的公共业务逻辑只需要编写一次。KMM减少了为不同平台编写和维护相同代码所花费的时间。...App层:Android的依赖无变化,依赖aar或者jar;iOS依赖sdkframework,这样iOS包大小只增加1M+。...当然如果依赖了一些库如ktor网络库,包也会变大,避免这个问题也可以不用依赖ktor,直接依赖现有的网络库来实现一个KMM SDK。
领取专属 10元无门槛券
手把手带您无忧上云