Qat-Java library provides accelerated compression and decompression using Intel® QuickAssist Technology (QAT) QATzip library. For more information about Intel® QAT, refer to the QAT Programmer's Guide. Additionally, the online QAT Hardware User Guide is a valuable resource that provides guidance on setting up and optimizing Intel® QAT.
Qat-Java currently supports DEFLATE and LZ4 compression algorithms.
To use Intel® QAT for compression and decompression, Qat-Java requires the following dependencies to be met.
-
Install QAT driver. Download the Intel® QAT driver for Linux from here and then follow these instructions.
-
Install QATZip. The instructions for installing QATZip library are available here.
Important! In cases where a QAT hardware is not available, Qat-Java can use a software-only execution. The instructions for installing and configuring the dependencies for a software-only execution are documented here.
In addition to the prerequisites listed above, building Qat-Java requires the following to be installed:
- Java 11 or above.
- gcc, CMake , Maven, and clang (for fuzz testing).
To build qat-java, run the below command:
mvn clean package
Other Maven targets include:
compile
- builds sourcestest
- builds and runs testssite
- generates Surefire report intotarget/site
javadoc:javadoc
- builds javadocs intotarget/site/apidocs
package
- builds jar file intotarget
directory
The build instructions were tested using gcc-8.5.0, cmake-3.10.0, mvn-3.5.4 and clang-16.0.0.
To run all the unit tests, execute the below command.
mvn clean test
To include hardware specific tests, execute the below command:
mvn clean test -Dhardware.available=true
You can also install the Jazzer tool and run Fuzz tests.
mvn clean test -Dfuzzing=true
You can run the examples in the com.intel.qat.examples
, use the below command:
java -cp .:./target/classes/ com.intel.qat.examples.<example-class>
Or using this command:
java --module-path target/classes -m com.intel.qat/com.intel.qat.examples.<example-class>
Thanks for your interest! Please see the CONTRIBUTING.md document for information on how to contribute.
For more information on this library, contact Nishchal, Praveen ([email protected]) or Mammo, Mulugeta ([email protected]), or Denloye, Olasoji ([email protected]).
* Java is a registered trademark of Oracle and/or its affiliates.