Skip to content

Conversation

@dominikl
Copy link
Member

@dominikl dominikl commented Nov 5, 2025

This PR:

  • Drops jzarr
  • Use zarr-java for v2 and v3
  • Removes the tests (for now, so it can actually be built and tested with e.g. Fiji Bioformats plugin; see Todo)

Caveats:

  • Needs merge (main + open PRs) build of zarr-java.

Todo:

  • Endianess for v3!?
  • Completely ignored HCS for now.
  • Add tests (again + v3 specific tests)
  • S3 won't work in Fiji plugin (the Bioformats plugin for some reason tries to load s3 URLs via minio client and fails, before it actually even gets to the ZarrReader).

ArrayMetadata m = array.metadata();
if (array instanceof dev.zarr.zarrjava.v3.Array) {
// TODO: Implement!!
res.put("littleEndian", true);
Copy link

@gouttegd gouttegd Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I may be completely wrong here, but my understanding is that, with v3, we do not actually have to care about the endianness of the data as stored, because this is already dealt with by the bytes codec.

Regardless of the original endianness, the bytes codec as implemented by Zarr-Java should ensure that at the end, what we get is always using the “native” byte order, which for Java is always big endian.

If I am correct, all we need to do here is always report the endianness as “big-endian” (res.put("littleEndian", false)), because that’s what we effectively see (even if the actual data were stored in little endian order).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants