JZarr is a Java library providing an implementation of chunked, compressed, N-dimensional arrays close to the Python zarr package.
- Create N-dimensional arrays with java primitive data types. At the moment boolean and char type are not supported.
- Chunk arrays along any dimension.
- Compress the chunks by using one of the compressors
- Store arrays in memory, on disk, (Future plans: inside a Zip file, on S3, …)
- Read an array concurrently from multiple threads or processes.
- Write an array concurrently from multiple threads or processes.
- Organize arrays into hierarchies via groups.
JZarr is in the very beginning phase. Feedback and bug reports are very welcome. Please get in touch via the GitHub issue tracker.
JZarr needs Java 8 or higher.
This API also offers blosc compression.
To use this compression, a compiled c-blosc distributed library must be available on the operating system.
If such a library is not available … The C sourcecode and instructions to build the library can be found at https://github.com/Blosc/c-blosc.
If you want to use the JZarr API and the integrated blosc compression, you have to start the Java Virtual Machine with the following VM parameter:
-Djna.library.path=<path which contains the compiled c-blosc library>
To use JZarr in your project integrate the following lines into your maven pom.xml:
<dependency> <groupId>com.bc.zarr</groupId> <artifactId>jzarr</artifactId> <version>0.3.2-SNAPSHOT</version> </dependency> <repositories> <repository> <id>bc-nexus-repo</id> <name>Brockmann-Consult Public Maven Repository</name> <url>http://nexus.senbox.net/nexus/content/groups/public/</url> </repository> </repositories>
It is planned to deploy the JZarr artifacts to the maven central repository too.