10th February, 2021
Attendees: (Add your own): Josh Moore (OME), Matthias Bussonnier, Jackson Brown, Ralf Gommers, Ryan Abernathey, John Kirkham, Ryan Williams, Chris Barnes, Andrew Champion
-
Greetings from Alistair! (Josh)
-
Quansight check-in (Ryan, Ralf, etc.)
-
Extension until end of March (40k to consume)
-
Matthias: few hours per week (hard for someone else to ramp up)
- Few PRs to rebase and get in
-
Ralf: few other people who could jump in.
-
Various Java efforts (nczarr-c, JZarr, n5)
-
Ralf: is Matthias blocked on feedback
-
Get on a call with Alistair
-
Final report May 1
-
-
Community
-
Rust & Zarr implementation interoperation
-
Chris: Status. rust-pyn5 bindings around rust-n5. h5py_like-compatible. Designs on other chunked backends. Zarr v3 (~maybe v2). In a separate repo, but Andrew is driving that.
-
Low-level repo has a portion with zarr v3 as of a couple of months ago.
-
Issues with flexibility with the protocol. Didn’t meld with rust idioms. (Knowledge of components) (up and downstream)
-
Matthias: numcodec implementation? All is handled in rust. Based on available crates. i.e. only support a subset. (Not all implementations are great)
-
As much as possible in rust. Attribute metadata access is in python.
-
See also n5-wasm (also neuroglancer pre-computed). Interop between javascript and wasm is difficult (handling of ndim arrays)
-
Matthias: Cryptography
- Especially an issue on some platforms (like HPC,
docker+alphine)
-
https://github.com/pyca/cryptography/issues/5771#issuecomment-775038889
-
https://doc.rust-lang.org/nightly/rustc/platform-support.html
- HPC being done with Java & Spark so haven’t run into it
yet
- Especially an issue on some platforms (like HPC,
-
John: which use cases for rust? currently being deployed on both ends of image browsing. On server to read n5 volumes into jpeg tiles on the fly. In the browser for a tool that looks at a lot of jpeg/n5 files. Nothing super-high through-put.
-
(Andrew joins)
-
Josh: potential for sharing an implementation & wrap. Sure. At least as much as C. Not great for introspection. But pretty versatile.
-
Josh: v3 as a subset of n5? AC: zarr does more than n5-use cases need. (Need to work with KLB and other formats) Zarr := uniform interface to similar emerging specs but also be plastic & versatile (extensibility)
-
AC: Rust doesn’t have a great dynamic linking story. Not sure how a python interface on top of rust is going to work.
-
MB: makes sense that extension are at compile time. That’s why they should all be listed in the top-level metadata.
-
JK: 2 things entangled
-
If I make an implementation, do I add the functionality
-
Do they live in one binary or in multiple.
-
-
CB: data communication to user whether or not its readable
-
nczarr? Can use rust library. Rust library can’t use C library due to wasm exporting.
-
AC: best implementation to work against? Zarrita or xtensor-zarr
-
Josh: Assume https://zarr-specs.readthedocs.io/en/core-protocol-v3.0-dev/ is the working version.
-
AC: working version is in *https://github.com/sci-rs/zarr *
-
JK: Spec issues tracked here: https://github.com/zarr-developers/zarr-specs/issues
-
-
-
Core
- Time-permitting:
.zarray[“nested”] (Josh)
- Time-permitting: