AAkira / Kotlin-Multiplatform-Libraries

Kotlin Multiplatform Libraries. Welcome PR if you find or create new Kotlin Multiplatform Library.
2.82k stars 239 forks source link

Add new KMP libraries, update badges #192

Closed Scogun closed 3 months ago

Scogun commented 8 months ago

KOMM

KOMM

ktor-simple-cache

ktor-simple-cache


domgew commented 7 months ago

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

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

Scogun commented 7 months ago

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?

domgew commented 7 months ago

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.

Scogun commented 7 months ago

I made Simple-Cache as multiplatform library

domgew commented 7 months ago

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.

hoc081098 commented 7 months ago

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 🙏

Scogun commented 7 months ago

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.

domgew commented 7 months ago

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.

Scogun commented 7 months ago

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

domgew commented 7 months ago

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).

AAkira commented 3 months ago

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?

Scogun commented 3 months ago

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.

AAkira commented 3 months ago

@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.