These are chat archives for fiji/fiji

30th
Jun 2017
Curtis Rueden
@ctrueden
Jun 30 2017 17:37
Pure-Java library for netCDF and HDF5: https://github.com/NCAR/nujan
Stephan Saalfeld
@axtimwalde
Jun 30 2017 18:11
'The Nujan writer only writes new files. It does not update existing files.'
that sounds like one step back compared to 'does not support parallel writing' (HDF5)
Curtis Rueden
@ctrueden
Jun 30 2017 18:14
Dealbreaker for your use case, eh?
@axtimwalde Are you saying there is a different pure-Java HDF5 writer?
Stephan Saalfeld
@axtimwalde
Jun 30 2017 18:15
good for compact small files, I guess but it means that you always have to save the complete image or stack or time-series
I don't know of other pure Java HDF5 writers
Curtis Rueden
@ctrueden
Jun 30 2017 18:18
I don't understand your comments, then.
What are you comparing Nujan against, if it's the only pure-Java implementation? The JNI-based ones? Of course they are better—they call the reference C implementation, no? But they will be fundamentally limited to the platforms for which they've been compiled.
Kyle I S Harrington
@kephale
Jun 30 2017 18:21
N5 :P
Stephan Saalfeld
@axtimwalde
Jun 30 2017 18:23
I just tried to understand what it does
and whether it is interesting for me
saving only new HDF5 files is a step back compared to existing JNI based libraries available for Java, and it is not necessary that JNI based implementations are better only because they are written in C
Stephan Saalfeld
@axtimwalde
Jun 30 2017 18:30
@kephale, I am pretty happy with N5 currently, but there is no support for it beyond the very limited number of platforms for which a JVM with java.nio exists
Kyle I S Harrington
@kephale
Jun 30 2017 18:36
but it should be pretty easy to port, right? its mostly channels + compression libraries
Curtis Rueden
@ctrueden
Jun 30 2017 18:43

it is not necessary that JNI based implementations are better only because they are written in C

Agreed. My point is that in this case, the complete (and only) HDF5 reference implementation is written in C, so the Java libraries which simply interface with that are indeed likely to work much better, at least on supported platforms.

very limited number of platforms for which a JVM with java.nio exists

Is java.nio not available on the JVM on some platforms? I would expect it is there for Windows, macOS, Linux x86/x64, Linux ARM/ppc, Linux s390x (what is that?), Solaris, Solaris SPARC, AIX, z/OS, IBM i. That does not strike me as particularly limited?

Curtis Rueden
@ctrueden
Jun 30 2017 18:48
I am glad that N5 is working well though. ^_^
Kyle I S Harrington
@kephale
Jun 30 2017 19:06
it seems like a good idea, but presumably it will need a proper C/C++ port to get the python audience