|
1 | 1 | # LZ4 Java |
2 | 2 |
|
| 3 | +*Community-maintained fork of https://github.com/lz4/lz4-java to patch CVE‐2025‐12183. Maven coordinates:* |
| 4 | + |
| 5 | +```xml |
| 6 | +<dependency> |
| 7 | + <groupId>at.yawk.lz4</groupId> |
| 8 | + <artifactId>lz4-java</artifactId> |
| 9 | +</dependency> |
| 10 | +``` |
| 11 | + |
3 | 12 | LZ4 compression for Java, based on Yann Collet's work available at |
4 | | -http://code.google.com/p/lz4/. |
| 13 | +https://github.com/lz4/lz4. |
5 | 14 |
|
6 | 15 | This library provides access to two compression methods that both generate a |
7 | 16 | valid LZ4 stream: |
@@ -155,40 +164,8 @@ speed at which they compress/decompress/hash bytes. |
155 | 164 |
|
156 | 165 | # Build |
157 | 166 |
|
158 | | -## Requirements |
159 | | - |
160 | | - - JDK version 7 or newer, |
161 | | - - ant version 1.10.2 or newer, |
162 | | - - ivy. |
163 | | - |
164 | | -If ivy is not installed yet, ant can take care of it for you, just run |
165 | | -`ant ivy-bootstrap`. The library will be installed under ${user.home}/.ant/lib. |
166 | | - |
167 | | -You might hit an error like the following when the ivy in ${user.home}/.ant/lib is old. You can delete it and then run `ant ivy-bootstrap` again to install the latest version. |
168 | | -``` |
169 | | -[ivy:resolve] :::::::::::::::::::::::::::::::::::::::::::::: |
170 | | -[ivy:resolve] :: UNRESOLVED DEPENDENCIES :: |
171 | | -[ivy:resolve] :::::::::::::::::::::::::::::::::::::::::::::: |
172 | | -``` |
173 | | - |
174 | | -## Instructions |
175 | | - |
176 | | -For lz4-java 1.5.0 or newer, first run `git submodule init` and then `git submodule update` |
177 | | -to initialize the `lz4` submodule in `src/lz4`. |
178 | | - |
179 | | -Then run `ant`. It will: |
| 167 | +Make sure you have a Java 7 installation in your [Maven toolchains.xml](https://maven.apache.org/guides/mini/guide-using-toolchains.html). You may also need a C compiler. |
180 | 168 |
|
181 | | - - generate some Java source files in `build/java` from the templates that are |
182 | | - located under `src/build`, |
183 | | - - compile the lz4 and xxhash libraries and their JNI (Java Native Interface) |
184 | | - bindings, |
185 | | - - compile Java sources in `src/java` (normal sources), `src/java-unsafe` |
186 | | - (sources that make use of `sun.misc.Unsafe`) and `build/java` |
187 | | - (auto-generated sources) to `build/classes`, `build/unsafe-classes` and |
188 | | - `build/generated-classes`, |
189 | | - - generate a JAR file called lz4-${version}.jar under the `dist` directory. |
| 169 | +Then, run `./mvnw verify`. |
190 | 170 |
|
191 | | -The JAR file that is generated contains Java class files, the native library |
192 | | -and the JNI bindings. If you add this JAR to your classpath, the native library |
193 | | -will be copied to a temporary directory and dynamically linked to your Java |
194 | | -application. |
| 171 | +Building a full artifact with native libraries for all supported platforms is more complex. We do this through github actions. |
0 commit comments