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

Recommend


More recommend