I just want to raise awareness about lz4-java library we use for LZ4
compressor. We are using the version 1.8.0, there is already version 1.10.0
of the underlying lz4 project which lz4-java integrates.

We can see from NEWS (1) that after 1.8.0 there are a lot of performance
improvements and in 1.10.0 they implemented multithreading compression (2)
which provides great compression times. This seems to be supported for
"cli" only, I am not completely sure yet if multithreaded compression would
be something which we might use for our case too though.

Anyway, the thing is lz4-java seems to be a dead project. There is no
official release from 1.8.0, the submodule of lz4 was updated to 1.9.3 but
it was never released and the main contributor behind lz4-java is
unresponsive. (I even wrote him an email with no response yet). There are
numerous requests from users to release a new version, questions about the
state of the project but the response is none. It truly seems like the
project was abandoned.

That is quite unfortunate and I am not sure what we should do about that. I
think that people will eventually fork so the project might continue in
some fashion. Nevertheless, I think the state of that library is in a quite
bad position.

We might look into alternatives but I do not think that switching it to
anything else will be easy because these custom libraries are often not
compatible between themselves as the way they implement the specification
might slightly vary.

On lz4.org (1), there is Apache Commons listed as a lib which implements
block and frame specification and it is interoperable so maybe we might
take a look into how we would replace it if lz4-java is indeed abandoned?

There is a note about lz4-java (or any lib in that category) like this:

They use the block compression format, but add their own frame / header
logic (or none at all) Consequently, they are not interoperable with LZ4
command line utility, nor (generally) between themselves.

Do we even want to make any progress in this area or are we happy to have
it on 1.8.0 forever?

(1) https://github.com/lz4/lz4/blob/dev/NEWS
(2) https://github.com/lz4/lz4/blob/dev/NEWS#L2
(3) https://lz4.org/

Reply via email to