|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -Notable changes, one line each — follow the link to the commit for detail. |
4 | | -Versions are `v*` git tags, which trigger publication to Maven Central. |
| 3 | +All notable changes to this project are documented here. Format loosely follows |
| 4 | +[Keep a Changelog](https://keepachangelog.com/); versions are released as `v*` |
| 5 | +git tags, which trigger publication to Maven Central. |
5 | 6 |
|
6 | 7 | ## [0.4] |
7 | 8 |
|
8 | | -- [Add `Zstd.versionNumber()` for programmatic version checks][16] |
9 | | -- [Fix a native context leak when a stream constructor fails mid-setup][13] |
10 | | -- [`ZstdSkippableContent` is a defensively-copied, value-equal record][21] |
11 | | -- [Fail fast with a named `NullPointerException` on null arguments; document stream / digested-dictionary thread-safety][22] |
12 | | -- [Harden the native loader (owner-only temp dir) and pin CI actions to a commit SHA][20] |
| 9 | +### Added |
| 10 | +- `Zstd.versionNumber()` — the linked zstd version as a single integer |
| 11 | + (`MAJOR * 10000 + MINOR * 100 + PATCH`, e.g. `10507` for `1.5.7`), for |
| 12 | + programmatic version checks alongside `version()`. |
| 13 | + |
| 14 | +### Changed |
| 15 | +- `ZstdSkippableContent` is now a true immutable value: it defensively copies its |
| 16 | + bytes on the way in and out, and compares by content |
| 17 | + (`equals` / `hashCode` / `toString` over the payload, not array identity). |
| 18 | +- Public methods fail fast with a named `NullPointerException` on null `byte[]`, |
| 19 | + dictionary, or sample arguments, instead of an opaque failure deep in native |
| 20 | + code. Streams are documented as not thread-safe; digested dictionaries |
| 21 | + (`ZstdCompressDict` / `ZstdDecompressDict`) as immutable and safe to share. |
| 22 | + |
| 23 | +### Fixed |
| 24 | +- A streaming wrapper that failed partway through construction (e.g. an invalid |
| 25 | + parameter or dictionary) leaked the native context. The context is now freed |
| 26 | + on every constructor error path. |
| 27 | + |
| 28 | +### Security |
| 29 | +- The bundled library is extracted into a directory created owner-only |
| 30 | + (`rwx------`) atomically at creation, not just by default. The third-party |
| 31 | + `setup-zig` CI action is pinned to a full commit SHA. |
13 | 32 |
|
14 | 33 | ## [0.3] |
15 | 34 |
|
16 | | -- [`zstd-platform` is now an empty convenience jar (not a `pom`)][9] |
17 | | -- [Bundled-only native loader; fix Sonar vulnerability + bug][8] |
18 | | -- [`ByteBuffer` interop + pledged-size zero-copy decode][6] |
| 35 | +- [`zstd-platform` is now an empty convenience jar (not a `pom`)](https://github.com/dfa1/zstd-java/commit/ba5593a) |
| 36 | +- [Bundled-only native loader; fix Sonar vulnerability + bug](https://github.com/dfa1/zstd-java/commit/8d0ea6a) |
| 37 | +- [`ByteBuffer` interop + pledged-size zero-copy decode](https://github.com/dfa1/zstd-java/commit/8bfe272) |
19 | 38 |
|
20 | 39 | ## [0.2] |
21 | 40 |
|
22 | | -- [`zstd-platform` aggregator; off-heap `MemorySegment` dictionary constructors][v0.2] |
| 41 | +- [`zstd-platform` aggregator; off-heap `MemorySegment` dictionary constructors](https://github.com/dfa1/zstd-java/releases/tag/v0.2) |
23 | 42 |
|
24 | 43 | ## [0.1] |
25 | 44 |
|
26 | | -- [First release: JDK 25 FFM bindings for Zstandard 1.5.7, built with `zig cc`][v0.1] |
27 | | - |
28 | | -[16]: https://github.com/dfa1/zstd-java/commit/e6a3537 |
29 | | -[13]: https://github.com/dfa1/zstd-java/commit/49e01b4 |
30 | | -[21]: https://github.com/dfa1/zstd-java/commit/a5f4aa0 |
31 | | -[22]: https://github.com/dfa1/zstd-java/commit/7dbad8e |
32 | | -[20]: https://github.com/dfa1/zstd-java/commit/c9929b9 |
33 | | -[9]: https://github.com/dfa1/zstd-java/commit/ba5593a |
34 | | -[8]: https://github.com/dfa1/zstd-java/commit/8d0ea6a |
35 | | -[6]: https://github.com/dfa1/zstd-java/commit/8bfe272 |
36 | | -[v0.2]: https://github.com/dfa1/zstd-java/releases/tag/v0.2 |
37 | | -[v0.1]: https://github.com/dfa1/zstd-java/releases/tag/v0.1 |
| 45 | +- [First release: JDK 25 FFM bindings for Zstandard 1.5.7, built with `zig cc`](https://github.com/dfa1/zstd-java/releases/tag/v0.1) |
0 commit comments