Animeshz / keyboard-mouse-kt

A lightweight multiplatform library for interacting with global keyboard and mouse events and states from Kotlin, Java and NodeJS.
https://animeshz.github.io/keyboard-mouse-kt
MIT License
52 stars 2 forks source link

Move to MavenCentral/Sonatype as Bintray has been discontinued. #20

Open Animeshz opened 3 years ago

Animeshz commented 3 years ago

Three blocking issues:

  1. https://youtrack.jetbrains.com/issue/KT-46257
  2. https://youtrack.jetbrains.com/issue/KT-45434
  3. https://github.com/touchlab/Stately/issues/62

Tracking them to release 0.4.x directly on Sonatype/MavenCentral.

A few major breaking changes will be happening, so don't want to publish the 0.3.x for creating confusions 1:

  1. Support all the available architectures of current targeting platforms (including K/N). Have removed all the partial-platform/architecture supporting dependencies, like coroutines and atomicfu.
  2. The Keyboard and the NativeKeyboard will be unified in all platforms without any wrapper decreasing all the latency into one and only one that is JNI or NApi or C-interop for respective targets.
  3. Instead of extra artifacts like keyboard-kt-jdk8 making a compatible layer with language, we'll release wrappers for coroutines and make current codebase compatible to be consumed by any language without any hassles and extra latency.
  4. keyboard-kt and mouse-kt will be merged into one to reduce the final size because the native libraries takes ~10Kb/platform without any meaningful code, merging will be a better option, also because both packages will load them that will also be a common code in both.
  5. The package name will start with io.github.animeshz instead of com.github.animeshz because com.github.* have became invalid group id coordinates now.

Footnotes: 1. For geeky peoples who want to use the library at 0.3.x, the current master branch at 2d17241a61179c29f2dd1f48137cfbb1bc1d12f4 commit is ready to build, with requirement of a docker container already published on dockerhub of ~420Mb compressed size that will be automatically picked when ./gradlew assemble or ./gradlew build will run for the first time. Run ./gradlew publishToMavenLocal to get artifacts built and published at <UserHome>/.m2/repository/com/github/animeshz.

MrManiacc commented 3 years ago

Any updates on this?

Animeshz commented 3 years ago

@MrManiacc Nope 👀, the first two issues are as is, opened. The K/N compiler is now getting a gc finally, hence frozen concepts will be deprecated and mutable memory can be shared removing the use of stately library completely (3rd issue).

If you want to test or use it for personal use, you can build 0.3.x in mavenLocal() repository as stated in the footnotes in above comment. Docs are currently still up to 0.3.x so should not have problem going through it 😃.