c-kzg-4844/bindings/java
Justin Traglia 69f6155d75
Bytes-only interface (#62)
* Convert argument types to bytes

* Update java bindings

* Update python bindings

* Update node.js bindings

* Update c# bindings

* Fix java binding compile issues

* Fix incorrect memcpy in nodejs bindings

* Fix bug (called the wrong func)

* Fix issues with java bindings

* Fix issues with node.js bindings

* Remove unnecessary wrapped funcs for c#

* Rename struct member to bytes

* Use goto out for callocs

* Fix nit

* Make un-exported funcs static

* Fix python bindings

* Check commitment length in python bindings

* Update python error message

* Steal good ideas from #37

* Fix tests.py which didn't get copied over

* Convert remaining a[] to *a

* Add missing Py_DECREF

* Bytes only rust (#1)

* Make interface bytes only
* Fix benches
* Avoid newtypes for kzg types
* Fix benches again
* Make fields private
* tidy
* Address review comments

* Fix one small thing in rust bindings

* Use ckzg types where possible

* Remove null terminator from domain bytes in rust

* Update rust binding docs

* Use BYTES_PER_* where applicable

* Add extra check for calloc

Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>
2023-01-16 20:05:23 +00:00
..
gradle/wrapper update gradle wrapper 2022-12-10 21:06:11 +02:00
src [Java binding] return NULL instead of 0 for jbyteArray methods 2022-12-20 18:34:29 +02:00
.gitignore Add hprof files to gitignore 2022-12-06 13:14:37 +00:00
Makefile Bytes-only interface (#62) 2023-01-16 20:05:23 +00:00
README.md [Java binding] Add test vectors for `verifyKzgProof` 2022-12-15 09:38:41 +02:00
build.gradle [Java binding] Add test vectors for `verifyKzgProof` 2022-12-15 09:38:41 +02:00
c_kzg_4844_jni.c Bytes-only interface (#62) 2023-01-16 20:05:23 +00:00
c_kzg_4844_jni.h [Java binding] Load trusted setup from params + custom exception 2022-12-16 13:42:53 +02:00
gradlew update gradle wrapper 2022-12-10 21:06:11 +02:00
gradlew.bat update gradle wrapper 2022-12-10 21:06:11 +02:00
settings.gradle adding gradle, makefile and tests 2022-11-24 17:16:15 +00:00

README.md

Java binding

Build shared library

Prerequisites

  • Follow the instructions in the README.md to build blst.
  • JAVA_HOME environment variable is set to a JDK with an include folder containing a jni.h file.

Build

make build

This will install the shared library in src/main/resources/ethereum/ckzg4844/lib with a folder structure and name according to the preset selected (mainnet or minimal) and your OS.

All variables which could be passed to the make command and the defaults can be found in the Makefile.

Test

make test

Benchmark

JMH is used for benchmarking. See CKZG4844JNIBenchmark.java for more information.

make benchmark

Library

The library which uses this binding and publishes a package to a public maven repo is jc-kzg-4844.