Kotlin-Multiplatform-Libraries icon indicating copy to clipboard operation
Kotlin-Multiplatform-Libraries copied to clipboard

Add new KMP libraries, update badges

Open Scogun opened this issue 1 year ago • 10 comments

KOMM

  • Kotlin Object Multiplatform Mapper which generates mapping function via KSP and supports multi-mapping, converters, resolvers, null-substitute etc.

KOMM

ktor-simple-cache

  • Easy-to-use lightweight library which adds configurable output cache support to Ktor, including Memory and Redis providers.

ktor-simple-cache


  • [x] Confirmed that two spaces were added at the end of the description to break a new line.

Scogun avatar Jan 29 '24 10:01 Scogun

ktor-simple-cache seems to be a JVM library (not multiplatform)

kotlin("jvm") vs kotlin("multiplatform")

domgew avatar Feb 06 '24 08:02 domgew

Ktor server supports only JVM and Nix so far. Does it make sense to use exactly multiplatform plugin to be into the repo? If so - what is my next steps? Remove the library or use multiplatform plugin instead jvm?

Scogun avatar Feb 06 '24 20:02 Scogun

I am not a maintainer of this repository, so my opinion is basically irrelevant.

But if you want it, I think there are a lot of Java libraries and only a big handful of qualitative Kotlin multiplatform libraries (e.g. not bound to just JVM). I think of this repository as a source for the latter and it would make sense to include the library when it supports at least one multiplatform target that is not the JVM, regardless of whether you use the JVM plugin or the multiplatform plugin with just the JVM target.

This seems to however align with the owner and maintainer of this repository (see https://github.com/AAkira/Kotlin-Multiplatform-Libraries/pull/172).

I personally would also expect this pull request to be three, so that each part can be independently reviewed and accepted or declined.

domgew avatar Feb 07 '24 11:02 domgew

I made Simple-Cache as multiplatform library

Scogun avatar Feb 09 '24 10:02 Scogun

As mentioned, I am no authority on that, but in my opinion, a project built with the multiplatform plugin and only providing the JVM target still just equals the same library created with the JVM plugin with a few extra steps and therefore is a Java library with another frontend.

domgew avatar Feb 10 '24 16:02 domgew

As mentioned, I am no authority on that, but in my opinion, a project built with the multiplatform plugin and only providing the JVM target still just equals the same library created with the JVM plugin with a few extra steps and therefore is a Java library with another frontend.

I agree with you 🙏

hoc081098 avatar Feb 13 '24 09:02 hoc081098

As mentioned, I am no authority on that, but in my opinion, a project built with the multiplatform plugin and only providing the JVM target still just equals the same library created with the JVM plugin with a few extra steps and therefore is a Java library with another frontend.

Again, the library is for Ktor Server which so far supports only JVM and partially NIX. However, if Ktor supports more targets - with already setup multiplatform target add new targets will be quite easy.

Scogun avatar Feb 13 '24 10:02 Scogun

As you are saying yourself, Ktor server supports more than just the JVM - namely native (at very least nix - Linux and macOS). I personally use Ktor native - especially for Linux - for my projects and removing the JVM dependency from many projects is not as trivial as you make it seem to be due to many transitive dependencies having deep ties with it and no adequate alternatives. And even if Ktor server did not support anything but the JVM, that would only mean that there was no need for a multiplatform library for caching yet and not that every JVM library magically becomes a multiplatform one.

But please keep in mind that as I keep mentioning I am not a maintainer of this repository and this is just an opinion that is meant to be helpful as authoritative pull request feedback in this repository is scarce at the moment and when you finally get some you might have to wait a while for a second chance.

domgew avatar Feb 13 '24 15:02 domgew

@domgew, please check this PR. As you can see, I did a really small changes to add additional targets.

Scogun avatar Feb 13 '24 17:02 Scogun

It definitely looks a lot more like a multiplatform library even though for the root package you are only testing via the JVM.

I did not say it was impossible. Neither did I mean to imply that you couldn't do it. I simply stated that it oftentimes is not as easy as it seems. In this case for example you just went to exclude the part (redis) that requires a lot of JVM dependencies (either directly or transitively).

domgew avatar Mar 05 '24 08:03 domgew

Sorry for the delay in checking the pull request.

Before I saw your comments, I checked the added repositories. I have been checking the added repositories one by one and was just wondering about adding to this repository regarding ktor-simple-cache.

This repository was created to help Kotlin multiplatform users, as there were few multiplatform libraries available when Kotlin multiplatform was announced. Therefore, I would like to list only libraries related to Kotlin multiplatform.

@Scogun Could you remove only ktor-simple-cache?

AAkira avatar Jun 21 '24 14:06 AAkira

Hello @AAkira !

Ktor-Simple-Cache is a multiplatform library. As well as Memory-Cache provider. I faced problems only with Redis-Cache provider. It's only JVM so far. However, if you still insist, I will remove it from this PR.

Scogun avatar Jun 23 '24 06:06 Scogun

@Scogun

Our policy is not to support adding library plugins that do not work on their own, but since Ktor is the major library by JetBrains, we would like to add it. Note, however, that categories and order may be rearranged in the future.

Our goal is to support KMP developers. Thank you for your PR.

AAkira avatar Jun 24 '24 10:06 AAkira