ktor past present and future hadi hariri
play

Ktor - Past, Present, and Future Hadi Hariri @hhariri October 15, - PowerPoint PPT Presentation

Kotlin 1.4 Online Event Ktor - Past, Present, and Future Hadi Hariri @hhariri October 15, 2020 What is Ktor? An OSS Framework Creating Server and Client applications Multiplatform A bit of history Frameworks for Kotlin


  1. Kotlin 1.4 Online Event Ktor - Past, Present, and Future Hadi Hariri @hhariri October 15, 2020

  2. What is Ktor? • An OSS Framework • Creating Server and Client applications • Multiplatform

  3. A bit of history

  4. Frameworks for Kotlin • Kara - A Ruby on Rails for Kotlin • Wasabi - An Express.js for Kotlin

  5. Ktor • Initiated by Ilya Ryzhenkov • Inspired by Kara and Wasabi • Apart from being a framework, it served to • Explore Kotlin as a DSL tool • Base for library usage • Coroutines to the max

  6. It caught on… • Started being used externally • Started being used internally • Space decided to go with Ktor • Multiple internal projects started using it • It started getting external contributions (Pull Requests)

  7. But there was a problem…

  8. And there were just two “part-time” developers

  9. Brings us to today

  10. We have quadrupled our team size!

  11. Changes we’ve already made • New site, new blog. And new Twitter account (@JetBrainsKtor). • Moved to Semantic Versioning • Commitment to 3 major/minor releases a year and monthly patch releases • Introducing deprecation cycle

  12. Ktor on the Server

  13. fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true) }

  14. fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true) }

  15. fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true) }

  16. fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true) }

  17. fun main() { val server = embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello Ktor!", ContentType.Text.Plain) } } } server.start(wait = true) }

  18. A Ktor Application Module Module Module . . .

  19. A Module Request Routing App Logic Response

  20. A Module Request Routing App Logic Response Feature

  21. A Module Request Routing App Logic Response Feature Feature

  22. A Module Request Routing App Logic Response Encoding Compression

  23. A Module Request Routing App Logic Response Feature

  24. Demos

  25. What lies ahead

  26. What’s in store? • Improving of onboarding experience • Improving development lifecycle experience (testing, deployment, etc.) • Improving client/server parity • Improving extensibility • Being attentive to performance • Revamping documentation (with compilable samples) • Improving tooling

  27. More at ktor.io

  28. Thanks! Have a nice Kotlin! @hhariri

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend