-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Multiplatform support #247
Comments
Hello! Thank you for the feature request. We've always wanted store to be multiplatform friendly but don't think we can achieve it yet due to our reliance on actors which are currently incompatible with kotlin multiplatform. As kmp matures and adds support for multi threaded coroutines we would definitely want to stop targeting Java only. |
I would also contribute to this if/when it takes place. Absolutely love the store API for modular kmm application; currently have it working with no cache layer (yet) and a modified actor for kmp. |
Would love to see your impl. If there is a clean way to separate the jvm parts out I don't see any reason not to go kmp. |
I stole the code snippet here : https://discuss.kotlinlang.org/t/actor-kotlin-common/19569 and replaced the call to jvm actor with this one in StoreRealActor and then ripped out the cache layer. As this was all PoC work I only tested it in an Android application since we're targeting Android first and iOS in the future. Testing on iOS and reimplementing the cache API with a cross platform alternative is on the road map but I had to punt it down the road. |
cc @ychescale9 who has a kotlin version of the cached. Hmm this is looking more possible everyday |
Probably too late for 1.0 but does it make sense to make our cache implementation pluggable? |
Yup should be reasonable for 1.1 |
Past few days I've worked on migrating testing over to multiplatform. Had to trade Truth for Turbine to implement the I did everything in a different module so that I could reference the original, however. If you're interested in it I'd be happy to submit a PR. I've kept a running list of changes since it's done in a different module; or I would be happy to move the code into the store4 module for better diffs. |
@ychescale9 mind linking to your cache impl? Would love to see your changes as well. This makes me feel like we can make it work sooner than I thought |
It's not quite ready yet. I setup the KMP project and ported some tests but haven't done much work since. I'm hoping to get back to it over Christmas. Will share it as soon as I have a working prototype. |
KMP port of my original kotlin/jvm cache: https://github.com/ReactiveCircus/cache4k A few notes:
|
Hi guys, can I please ask if this is on the roadmap? |
Our internals are built expecting multi threaded coroutines. Once kmp coroutines support access across threads, we will begin working toward compatibility. It's unclear when that will be the case |
|
It's on the radar but after the breaking changes in duration experimental apis, we are being more cautious with depending on experimental branches |
Any updates on this? |
The new MM will be merged into the main branch in coroutines 1.6.0. As it's explained in this issue, |
Planning to yes but no estimate. We are starting to explore kotlin native. Any help would be appreciated. See @handstandsam |
When we do approach we should pull this back in https://github.com/ReactiveCircus/cache4k |
After the new memory model release i searched something to try it . so i started to convert store4 to kmp some weeks ago. So i "finished" converting : cache, filesystem, store and multicast to Android/iOS/JVM I forked Store4 but working in a private repro atm. |
Wow sounds awesome! We can make a branch here if you’d like play in the main repo. Excited to see progress |
Sure thing. But i created a new project and added module by module as it was too time consuming for me to get the current gradle script working as kmp. |
@digitalbuddha |
Looks awesome! I created a branch Kmp in case you want to start integrating back into the main repo. I’m excited for the shape this is taking |
Hello everyone ! I want to participate this project, please allow me join this project |
Hi folks hold tight, there will be some messaging from dropbox coming along with how to join the google summer of code projects |
Hello everyone, I'm Kaustubh Chavan, a third year computer engineering student and a GSOC aspirant. I came across this project yesterday and found it fascinating. I have some experience in java language and really passionate about my field. I'm really interested in this project and want to be a part of it and help develop the software. |
Regarding Google Summer of Code (GSOC), this project is unfortunately no longer going to be participating. @changusmc sent out this message regarding it: https://twitter.com/changusmc/status/1509231084638142467
|
Just another nudge; would love using this in our multiplatform project. |
Hey all - Store now targets Android, iOS, JVM, and JS! |
@matt-ramotar thats amazing! thanks |
Is your feature request related to a problem? Please describe.
It would be nice to migrate the project to support multiplatform projects in the future
Describe the solution you'd like
Multiplatform projects with native or js targets could possibly make use of the Store functionality.
The possible implications:
Additional context
Since Store is a library for the data layer, which is the primary target for multiplatform projects, I believe it would make sense to move in a platform agnostic direction by covering more kotlin targets (However it might make sense to review the JVM and/or Android dependencies more closely)
PS: I'm more then happy to contribute in any format, so let me know if you need any kind of help
The text was updated successfully, but these errors were encountered: