Giter Club home page Giter Club logo

qat-java's Introduction

Java* Native Interface binding for Intel® QuickAssist Technology

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.

Prerequisite

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.

Build

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 sources
  • test - builds and runs tests
  • site - generates Surefire report into target/site
  • javadoc:javadoc - builds javadocs into target/site/apidocs
  • package - builds jar file into target directory

The build instructions were tested using gcc-8.5.0, cmake-3.10.0, mvn-3.5.4 and clang-16.0.0.

Testing

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

Examples

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>

Contributing

Thanks for your interest! Please see the CONTRIBUTING.md document for information on how to contribute.

Contacts

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.

qat-java's People

Contributors

mulugetam avatar praveennish avatar rdower avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.