How Should NetCDF Support LZ4 Compression? #2228
Replies: 5 comments 4 replies
-
I see LZ4 has a dual license (only worse). be careful. |
Beta Was this translation helpful? Give feedback.
-
These licence considerations are not going to stop users or the CCR project from using LZ4. These are lawyers' quibbles. The software is licensed for free use. That is all we need it to be. It is already freely available. It is used extensively by Zarr, which is used by a lot of FOSS projects and science institutions. Szip has a much more restrictive license and it has been supported since netcdf-c-4.0. I fail to see the real problem here. |
Beta Was this translation helpful? Give feedback.
-
I don't see the problem either, insofar as we are obliged to worry about these considerations so that our downstream users don't need to. I cannot for a moment imagine simply saying 'to hell with the license, we're not even going to worry about it', from a mechanical, ethical, or practical standpoint :). It would paint us in a pretty sloppy light, and I can only imagine what the impact would be if we were to somehow lose the goodwill or trust of projects for whom this is, in fact, a dealbreaker. Our commercial users might not be our primary community, but it is no small thing that netCDF has become so ubiquitous throughout the open source and commercial scientific software strata. It would be a shame to waste all the effort people have put in (including your own, @edwardhartnett!) through a moment of laxity. I understand it's frustrating to have to worry about these concerns; I would like to dispense with a lot of the "project management"-adjacent tasks I spend my time on instead of writing code. But it comes part-and-parcel with the job, I suppose, so we may as well make a good job of it. In a nutshell, I can see the destination I think we are most likely to end up at; netCDF will not distribute binaries that will fundamentally change the license or encumber our community with dual/changing licenses. So the Windows distribution will not include bundled binaries that do so. We will distribute the bundles we can, and provide instructions for compiling the others. That's the logical solution here, I think, and will not preclude supporting these compressors in the code itself, when the appropriate binaries are available. Despite this seeming like the obvious solution to me, however, diligence and professional courtesy demand the conversation :). |
Beta Was this translation helpful? Give feedback.
-
Apparently theres a pure java port at https://github.com/airlift/aircompressor maybe we can use. Apache 2 license, This https://stackoverflow.com/questions/60974402/lz4-and-zstd-for-java says "though with less features". Not sure what that means. what features does your implementation use? |
Beta Was this translation helpful? Give feedback.
-
Ed - you are aware of the viral nature of GPL2 and 3, right? |
Beta Was this translation helpful? Give feedback.
-
Introduction
From the LZ4 GitHub page (https://github.com/lz4/lz4):
LZ4 is one of the codecs used by BLOSC. It is also highly favored in the Zarr community.
Community Codec Repository
I tried to support LZ4 in the CCR project (https://github.com/ccr/ccr). But while it appeared to work fine, it actually made the data file bigger, not smaller. I am assured that the LZ4 library works well, so this was either a problem with the HDF5 filter, or with how I used it.
Next Steps
LZ4 needs to be working in CCR, to demonstrate that it works and so that it can be benchmarked.
Beta Was this translation helpful? Give feedback.
All reactions