Skip to content

intel/qat-java

Repository files navigation

Java* Native Interface Binding for Intel® QuickAssist Technology

Qat-Java accelerates data compression in Java applications using Intel® QuickAssist Technology (QAT) hardware.

Supported Algorithms

Algorithm Notes
DEFLATE QAT offload
LZ4 QAT offload
Zstandard QAT offload (only for compression)

Prerequisites

Hardware

  • Intel® platform with QAT (e.g., 4th/5th Gen Xeon® Scalable)
  • QAT devices configured and accessible (see QAT Documentation)

Software

Dependency Version
QATlib 24.09.0
QATzip 1.3.0
Zstandard 1.5.4
zstd-jni 1.5.6-1+ (if not building from source)
Zlib 1.2.7+
GCC 8.5+
JDK 17+
Clang Required for fuzz testing only

Quick Start

# Build
mvn clean package

# Run an example
java -cp .:./target/classes/:path/to/zstd-jni-1.5.6-1.jar \
  com.intel.qat.examples.QatDeflateExample

Build

mvn clean package

Maven Goals

Goal Description
clean Remove build artifacts
compile Compile source code
test Run unit tests
package Build JAR files into target/
javadoc:javadoc Generate API documentation
spotless:check Verify code formatting
spotless:apply Auto-fix code formatting
site Generate Surefire reports in target/site/

Testing

Run all unit tests:

mvn test

Fuzz Testing

Requires Jazzer:

mvn test -Dfuzzing=true

Examples

Run any class from the com.intel.qat.examples package:

# Linux
java -cp .:./target/classes/:path/to/zstd-jni-1.5.6-1.jar \
  com.intel.qat.examples.<ExampleClass>

# Windows
java -cp .;.\target\classes\;path\to\zstd-jni-1.5.6-1.jar ^
  com.intel.qat.examples.<ExampleClass>

Contributing

See CONTRIBUTING.md for guidelines.

Authors

Zstandard compression contributions by Jacob Greenfield, Matthew West, and Tommy Parisi.

License

BSD License


* Java is a registered trademark of Oracle and/or its affiliates.

About

A library for accelerating data compression using Intel® QAT.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

23 stars

Watchers

4 watching

Forks

Packages

 
 
 

Contributors