quarkus-scala3 icon indicating copy to clipboard operation
quarkus-scala3 copied to clipboard

Scala 3 Quarkus improvements to close the gap to Kotlin

Open carlosedp opened this issue 1 year ago • 0 comments

With this issue, I'd like to list some gaps and improvements that could be done to the Quarkus / Scala ecosystem to bring it up to a similar level as Kotlin.

Some features are shown in my Scala 3 Quarkus quickstart project at: https://github.com/carlosedp/scala3-quarkus-quickstart/

Some Improvements:

  • [ ] Create a Scala guide page in https://quarkus.io that could use as a base the readme of this extension
  • [ ] Register the Scala Enum module in ObjectMapper when Jackson Scala module is added along the lines I did in https://github.com/carlosedp/scala3-quarkus-quickstart/blob/main/src/main/scala/helper/EnumJsonSerializationHelper.scala. I see the DefaultScalaModule is already added. Is it possible to also add the lib to avoid the user to add it?
    • Addressed by #36
  • [ ] Is it possible to add scala3-compiler_3 to the extension so it's one less lib to add to Maven/Gradle user project?
  • [ ] Add the RestAssured DSL to the module for ease-of-use?
    • Opened https://github.com/rest-assured/rest-assured/pull/1770/ to add the DSL to rest-assured
  • [ ] Allow use of Scala Futures and Promises in Quarkus Resources - Addressed by #51
  • [ ] Allow use of Scala Zio effects in Quarkus Resources - Addressed by #52

Current extensions published for Kotlin:

  • [x] Kotlin (which I understand provides the same functionality as this extension)
  • [ ] Hibernate ORM with Panache and Kotlin
  • [ ] Hibernate Reactive Panache Kotlin
  • [ ] MongoDB with Panache for Kotlin
  • [ ] REST Client Reactive Kotlin Serialization
  • [ ] RESTEasy Reactive Kotlin Serialization
  • [ ] RESTEasy Reactive Kotlin
  • [ ] RESTEasy Reactive Kotlin Serialization Common
  • [ ] Scheduler
  • [ ] Smallrye Reactive Messaging

I understand these provide some abstractions to the underlying Java libraries to a more Kotlin-esque style. Could be done on a needed-basis.

carlosedp avatar Feb 02 '24 18:02 carlosedp