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).