aws-sdk-kotlin icon indicating copy to clipboard operation
aws-sdk-kotlin copied to clipboard

Kotlin Native Support

Open aajtodd opened this issue 3 years ago • 8 comments

Support for Kotlin Native targets

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue, please leave a comment

Describe the Feature

Add support for using generated AWS service clients on Kotlin Native targets. Requires:

  • CRT support from aws-crt-kotlin
  • Runtime support from smithy-kotlin (notably JSON/XML serde support)
  • KMP project generation: https://github.com/awslabs/smithy-kotlin/issues/437

aajtodd avatar Jul 08 '21 14:07 aajtodd

Currently blocked by memory model being in-flux: https://blog.jetbrains.com/kotlin/2020/07/kotlin-native-memory-management-roadmap/

aajtodd avatar Jul 08 '21 14:07 aajtodd

There is a typo in the description, Add support for using generated AWS service clients on Kotlin JS targets. Should be Kotlin Native instead of Kotlin JS.

napperley avatar Aug 30 '21 21:08 napperley

Which targets will the Kotlin Native support cover? Does it include linuxX64, linuxArm32Hfp, and linuxArm64?

napperley avatar Aug 30 '21 21:08 napperley

@napperley It's still a bit early to know for sure which targets we would initially support. I don't think any of the ones you mentioned are particularly worrisome though.

aajtodd avatar Aug 31 '21 13:08 aajtodd

To anyone following this issue, we ask that you please take some time to respond to the discussion on KMP use cases. Thank-you!

aajtodd avatar Dec 09 '21 19:12 aajtodd

Hey, I'd love to see native support for the SDK. That would be a huge game changer when talking about microservices development (my main pain point is that yes, I can go for a native backend framework with Kotlin but I still need the clients for several services to be native) As you were mentioning, previous memory manager model has changed. A preview of the new model was released last year and now it's the default one for Kotlin 1.7.20 (as of today, latest version)

Everything to say, there seems to be some performance issues with the new model, though. In any case, I prefer to have slow binaries that will improve with newer versions than having no binaries at all ¯\_(ツ)_/¯

I'll try to find some time to see if I can play around with the repo and generate some binary targets, but I'm afraid I can't promise anything

AlbertoSH avatar Oct 16 '22 08:10 AlbertoSH

Is there any status update on this? Kotlin Native would be a real game-changer with native Lambda runtime.

rafalwrzeszcz avatar Jun 28 '23 20:06 rafalwrzeszcz

The team is focused on stabilizing the SDK right now for JVM. The core runtime is setup as a multiplatform library already though and ready to add support for additional platforms but we have no timeline to share at the moment.

aajtodd avatar Jun 29 '23 12:06 aajtodd