HDFGroup / HDFGroup/hdf5

Java Binding Enhancements from Janelia

Open
#2,402 5 comments 0 reactions 1 assignee Assigned to @mattjala View on GitHub
Component - Wrappers
Dominant language
C
Stars
988
Forks
355
Avg merge
4d 2h
Merged PRs (30d)
12

Description

**Is your feature request related to a problem? Please describe.**
This is a tracking issue for enhancements to the Java bindings from the Janelia Research Campus of the Howard Hughes Medical Institute

**Describe the solution you'd like**
Improve Java Native Interface Bindings:
- [ ] Improve exposure of the H5D chunk interface
- [ ] Create new bindings for the new [Java Foreign Function Interface](https://openjdk.org/jeps/424).

Improve packaging for Java:
- [ ] Incorporate native library loader (SciJava native library loader https://github.com/scijava/native-lib-loader )
- [ ] Package official bindings via Maven

**Describe alternatives you've considered**
Java Native Access allows for dynamically generated bindings:
https://github.com/java-native-access/jna

JavaCPP creates automatically generated bindings
https://github.com/bytedeco/javacpp-presets/tree/master/hdf5

**Additional context**
- [Java 19 Java Native Interface Documentation](https://docs.oracle.com/en/java/javase/19/docs/specs/jni/functions.html#newdirectbytebuffer)
- In particular, see the [java.nio.ByteBuffer](https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html) related methods such as [NewDirectByteBuffer](https://docs.oracle.com/en/java/javase/19/docs/specs/jni/functions.html#newdirectbytebuffer)
- New foreign API: [java.lang.foreign ](https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/foreign/package-summary.html)
- See [java.lang.foreign.MemorySegment](https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/foreign/MemorySegment.html#asByteBuffer()) and the `asByteBuffer` method.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.