This project will no longer be maintained by Intel.
Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.
Contact: webadmin@linux.intel.com
This library will allow Java* applications to communicate with the Intel® Query Processing Library (Intel® QPL) , for use with Intel® In-Memory Analytics Accelerator (Intel® IAA) , to improve performance by accelerating operations like compression and decompression.
The following are the prerequisites for building this Java library:
- Intel® QPL library - To build, Intel® QPL follow Installation. Make sure Intel® QPL library installed into either "/usr/local/lib64" or "/usr/local/lib". This library has been tested with Intel® QPL version 1.3.1
- Java 11 or Java 17.
- Build tools - g++, CMake , Maven and clang (for fuzz testing).
This library assumes the availability of Intel® IAA hardware.
For more information about the Intel® In-Memory Analytics Accelerator, refer to the IAA spec on the Intel® 64 and IA-32 Architectures Software Developer Manuals page.
Once all the prerequisites have been satisfied:
$ git clone https://github.com/intel/qpl-java.git
$ cd qpl-java
$ mvn clean package
Available Maven commands include:
compile- builds sourcestest- builds and runs testssite- generates Surefire report intotarget/sitejavadoc:javadoc- builds javadocs intotarget/site/apidocspackage- builds jar file intotargetdirectoryspotless:check- check if source code is formatted well.spotless:apply- fixes source code format issues.
This library supports both functional and Fuzz testing.
To run all the functional tests, execute the following command:
mvn clean test
Jazzer tool is used to enable fuzz testing on this project.
see here for Jazzer dependencies.
To run the Fuzz tests, execute the following command:
mvn clean test -Dfuzzing=true
The above command executes each Jazzer Fuzz tests for 10 seconds.
To run for a longer duration, modify -max_total_time fuzzParameter in pom.xml
qpl-java is available from the Maven central repository. Add the following dependency to your pom.xml:
<dependency>
<groupId>com.intel.qpl</groupId>
<artifactId>qpl-java</artifactId>
<version>1.0.0</version>
</dependency>
To use this library in your Java application, build the qpl-java jar and include its location in your Java classpath. For example:
$ mvn package
$ javac -cp .:<path>/qpl-java/target/qpl-java-<version>.jar <source>
$ java -cp .:<path>/qpl-java/target/qpl-java-<version>.jar <class>
Alternatively, include qpl-java's target/classes directory in your Java classpath and the
target/cppbuild directory in your java.library.path. For example:
$ mvn compile
$ javac -cp .:<path>/qpl-java/target/classes <source>
$ java -cp .:<path>/qpl-java/target/classes -Djava.library.path=<path>/qpl-java/target/cppbuild <class>
Thanks for your interest! Please see the CONTRIBUTING.md document for information on how to contribute.
For more information on this library, contact Kokoori, Shylaja (shylaja.kokoori@intel.com) or Suvarna Reddy, Sevanthi (sevanthi.suvarna.reddy@intel.com) .
* Java is a registered trademark of Oracle and/or its affiliates.