Hello!
The current version 1.5.1 of xgboost4j published on Maven Central [1] contains native libraries for 3 platforms (OS+architecture):
lib/linux/x86_64/libxgboost4j.so
lib/windows/x86_64/xgboost4j.dll
lib/macos/x86_64/libxgboost4j.dylib
Unfortunately, our setup also requires support for alpine-based Linux (MUSL instead of glibc) and ARM-based Macs in the near future.
Our current plan is to build the library on Alpine-Linux (via Docker) and ARM-based Macs, add the two native libraries to the published JAR from Maven Central and store it in our own repository. Of course, this also involves patching the NativeLibLoader.java
class.
While this is doable, it’s kinda ugly. Therefore, I’m asking whether there are any plans yet to add support for those additional native platforms in a future release?
The ARM-based Mac version would easily fit into the current structure, as it would simply be an additional architecture (lib/macos/arm64/libxgboost4j.dylib
).
The Alpine-based Linux version doesn’t fit well into the current scheme. Maybe something like
lib/alpine_linux/x86_64/libxgboost4j.so
would make sense. Or alternatively
lib/linux/x86_64/libxgboost4j_alpine.so
.
[1] https://search.maven.org/artifact/ml.dmlc/xgboost4j_2.12/1.5.1/jar