-
Notifications
You must be signed in to change notification settings - Fork 67
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
Initial cut for a cuVS Java API #450
base: branch-24.12
Are you sure you want to change the base?
Conversation
Co-authored-by: Vivek Narang <[email protected]>
FYI @cjnolet ^ |
/ok to test |
2cfab29
to
1597158
Compare
@naramgvivek10 Let's move CuVSResources to the cuvs package instead of common? That way we can abstract out the internals of Panama out of sight of the users. |
/ok to test |
@@ -459,6 +461,12 @@ if (( ${NUMARGS} == 0 )) || hasArg rust; then | |||
cargo test | |||
fi | |||
|
|||
# Build the cuvs Java bindings | |||
if (( ${NUMARGS} == 0 )) || hasArg java; then | |||
cd ${REPODIR}/java |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should make this smart enough to automatically build libcuvs when the java
arg is supplied. Just makes the overall experience better for users when they don't need to know all the ins and outs of the build in order to get a build from source.
* JDK 22 | ||
* Maven 3.9.6 or later | ||
|
||
Please build libcuvs (`./build.sh libcuvs` from top level directory) before building the Java API with `./build.sh` from this directory. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As per comment above, I think we should mention this, but also mention that calling build.sh java
from the top level will automatically build libcuvs.
java/cuvs-java/pom.xml
Outdated
<manifest> | ||
<addClasspath>true</addClasspath> | ||
<mainClass> | ||
com.nvidia.cuvs.ExampleApp</mainClass> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have establiahed a convention of putting example apps in the examples
subdirectory under the top-level repository. Can we please do that with Java as well? In additon to just showing how to use the APIs, those examples also demonstrate how a user would build and include cuvs artifacts in their applications.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed, thanks!
@@ -0,0 +1,352 @@ | |||
/* | |||
* Copyright (c) 2023-2024, NVIDIA CORPORATION. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All new files should only include the current year.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed, thanks!
…eparate example project
…ent for data array
A Java API for cuVS for easy integration into Apache Lucene or other Java based projects.
Try:
For generating docs,
mvn javadoc:javadoc
Prerequisites:
Todo: