Skip to content

Add zvec-java bindings#407

Draft
myaniu wants to merge 5 commits into
alibaba:mainfrom
myaniu:feature/java-bindings
Draft

Add zvec-java bindings#407
myaniu wants to merge 5 commits into
alibaba:mainfrom
myaniu:feature/java-bindings

Conversation

@myaniu
Copy link
Copy Markdown

@myaniu myaniu commented May 14, 2026

Summary

  • Adds the java/zvec-java Maven reactor with API, JNI, and FFM backend modules.
  • Adds shared backend test coverage through the API test-jar, with thin JNI/FFM subclasses and backend-specific native loader tests.
  • Adds platform-aware native build and packaging support for macOS, Linux, and Windows native resources.
  • Adds a JNI quickstart example and documents the multi-platform jar release flow.

Notes

  • API and JNI target Java 11.
  • FFM targets Java 25.
  • Native libraries and packaged jars are not committed to git; multi-platform jars are intended to be published as GitHub Release assets or through the project release flow.

Test Plan

  • JAVA_HOME="$HOME/.sdkman/candidates/java/25.0.2-oracle" PATH="$JAVA_HOME/bin:$PATH" mvn -q test in java/zvec-java
  • JAVA_HOME="$HOME/.sdkman/candidates/java/11.0.26-amzn" PATH="$JAVA_HOME/bin:$PATH" mvn -q -pl zvec-java-jni -am install -DskipTests in java/zvec-java
  • JAVA_HOME="$HOME/.sdkman/candidates/java/11.0.26-amzn" PATH="$JAVA_HOME/bin:$PATH" mvn -q compile exec:java in java/zvec-java/examples/quickstart-jni

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 14, 2026

CLA assistant check
All committers have signed the CLA.

Mirrors Dockerfile.linux_x64_glibc228 for arm64: ubuntu:18.10 (cosmic) on
ports.ubuntu.com / old-releases, gcc-9 from focal, glibc 2.28, CMake 3.30.0,
Miniforge with py310/311/312 envs. Used to produce linux-aarch64 native
libraries for the zvec-java-jni and zvec-java-ffm artifacts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants