/ bindings / java / README.md
README.md
 1  # Java binding
 2  
 3  ## Build shared library
 4  
 5  ### Prerequisites
 6  
 7  * Build blst by running `make blst` in the [library source directory](../../src).
 8  * Set `JAVA_HOME` environment variable to a JDK with an `include` folder containing a `jni.h` file.
 9  
10  ### Build
11  
12  ```bash
13  make build
14  ```
15  
16  This will install the shared library in `src/main/resources/ethereum/ckzg4844/lib` with a folder
17  structure and name according your OS.
18  
19  All variables which could be passed to the `make` command and the defaults can be found in
20  the [Makefile](./Makefile).
21  
22  ## Test
23  
24  ```bash
25  make test
26  ```
27  
28  ## Benchmark
29  
30  JMH is used for benchmarking.
31  See [CKZG4844JNIBenchmark.java](src/jmh/java/ethereum/ckzg4844/CKZG4844JNIBenchmark.java) for more
32  information.
33  
34  ```bash
35  make benchmark
36  ```
37  
38  ## Library
39  
40  The library which uses this binding and publishes a package to a public maven repo
41  is [jc-kzg-4844](https://github.com/ConsenSys/jc-kzg-4844).