@@ -5,14 +5,14 @@ and semantics follow the [official manual](https://facebook.github.io/zstd/doc/a
55
66- zstd version: ** 1.5.7** (vendored ` third_party/zstd ` , pinned to tag ` v1.5.7 ` )
77- Public symbols exported by ` libzstd ` : ** 185**
8- - Bound so far: ** 55 ** (~ 30 %)
8+ - Bound so far: ** 68 ** (~ 37 %)
99
1010"Bound" means the symbol has a ` MethodHandle ` in ` Bindings ` and is reachable
1111through the public Java API. The rest are reachable from native code but not yet
1212surfaced. Many unbound symbols are deprecated, experimental, or static-buffer /
1313low-level variants that an idiomatic Java API does not need.
1414
15- ** 25 ** of the unbound symbols are deprecated upstream (carry ` ZSTD_DEPRECATED ` in
15+ ** 27 ** of the unbound symbols are deprecated upstream (carry ` ZSTD_DEPRECATED ` in
1616` zstd.h ` ) and will never be bound — each is superseded by API already listed here.
1717In the per-area tables below they are flagged ** ᵈ** in the Bound column; the same
1818list is recorded in ` Bindings.java ` . Notably this binds ` ZSTD_getFrameContentSize `
@@ -30,12 +30,12 @@ rather than the deprecated `ZSTD_getDecompressedSize`.
3030| Errors | 4 / 4 | complete: name, typed ` ZstdErrorCode ` , and ` description() ` |
3131| Reusable contexts | 6 / 8 | CCtx/DCtx create/free/compress/decompress |
3232| Dictionary — simple | 10 / 23 | raw + digested (CDict/DDict) + dict-id queries; ` _advanced ` /` _byReference ` /` Begin ` variants not bound |
33- | Dictionary training (ZDICT) | 4 / 12 | ` trainFromBuffer ` ; cover/fastCover optimizers not bound |
33+ | Dictionary training (ZDICT) | 8 / 12 | trainFromBuffer, cover/fastCover optimizers, finalizeDictionary, getDictHeaderSize |
3434| Streaming — compress | 3 / 22 | ` ZstdOutputStream ` (compressStream2 + buffer sizes) |
3535| Streaming — decompress | 3 / 15 | ` ZstdInputStream ` (decompressStream + buffer sizes) |
3636| Advanced parameters | 8 / 38 | all ` ZSTD_cParameter ` + ` ZSTD_dParameter ` via ` ZstdCompressParameter ` /` ZstdDecompressParameter ` ; ` compress2 ` , ` C/DCtx_setParameter ` , ` loadDictionary ` , ` c/dParam_getBounds ` ; MT inert on single-thread build |
37- | Frame inspection | 9 / 13 | ` ZstdFrame ` : isFrame, header, compressedSize, decompressedBound, dictId, skippable read/write; getFrameProgression/ _ advanced not bound |
38- | Memory sizing | 0 / 14 | ` sizeof_* ` / ` estimate* ` accounting not bound |
37+ | Frame inspection | 10 / 13 | ` ZstdFrame ` + getFrameProgression; ` _advanced ` not bound |
38+ | Memory sizing | 8 / 14 | sizeof_C/DCtx, sizeof_C/DDict, estimate C/DCtx + C/DDict size |
3939| Low-level block | 0 / 12 | expert block/continue API not bound |
4040| Sequences | 0 / 5 | sequence producer API not bound |
4141| Misc / experimental | 0 / 10 | static-buffer init, param helpers, ` copy* ` not bound |
@@ -69,13 +69,18 @@ rather than the deprecated `ZSTD_getDecompressedSize`.
6969| ` ZSTD_CCtx_loadDictionary ` , ` ZSTD_DCtx_loadDictionary ` | ` ZstdOutputStream ` / ` ZstdInputStream ` dictionary constructors |
7070| ` ZSTD_isFrame ` , ` ZSTD_findFrameCompressedSize ` , ` ZSTD_decompressBound ` , ` ZSTD_getDictID_fromFrame ` , ` ZSTD_getFrameHeader ` , ` ZSTD_isSkippableFrame ` , ` ZSTD_writeSkippableFrame ` , ` ZSTD_readSkippableFrame ` | ` ZstdFrame ` (+ ` ZstdFrameHeader ` , ` ZstdFrameType ` , ` ZstdSkippableContent ` ) |
7171| ` ZSTD_getErrorCode ` | ` ZstdException.code() ` (+ ` ZstdErrorCode ` ) |
72+ | ` ZSTD_getFrameProgression ` | ` ZstdCompressStream.progress() ` (` ZstdFrameProgression ` ) |
73+ | ` ZDICT_optimizeTrainFromBuffer_cover ` , ` ZDICT_optimizeTrainFromBuffer_fastCover ` | ` ZstdDictionary.trainCover ` / ` trainFastCover ` |
74+ | ` ZDICT_finalizeDictionary ` , ` ZDICT_getDictHeaderSize ` | ` ZstdDictionary.finalizeFrom ` / ` headerSize() ` |
75+ | ` ZSTD_sizeof_CCtx ` , ` ZSTD_sizeof_DCtx ` , ` ZSTD_sizeof_CDict ` , ` ZSTD_sizeof_DDict ` | ` sizeOf() ` on contexts / dicts / streams |
76+ | ` ZSTD_estimateCCtxSize ` , ` ZSTD_estimateDCtxSize ` , ` ZSTD_estimateCDictSize ` , ` ZSTD_estimateDDictSize ` | ` Zstd.estimate*Size ` |
7277
7378## Roadmap (priority order)
7479
75801 . ~~ ** Streaming** ~~ — done: ` ZstdOutputStream ` / ` ZstdInputStream ` (` compressStream2 ` , ` decompressStream ` , bounded buffers, dictionary constructors, ` pledgedSrcSize ` via ` withPledgedSize ` ). Remaining: ` MemorySegment ` -buffer driver.
76812 . ~~ ** Advanced parameters** ~~ — done: every ` ZSTD_cParameter ` /` ZSTD_dParameter ` via ` ZstdCompressParameter ` /` ZstdDecompressParameter ` (+ ` bounds() ` ), on both contexts; ` pledgedSrcSize ` . ` nbWorkers ` is settable but inert until the native build enables multithreading.
77- 3 . ~~ ** Frame inspection** ~~ — done: ` ZstdFrame ` (` isFrame ` , ` header ` , ` compressedSize ` , ` decompressedBound ` , ` dictId ` , skippable read/write ); dict-id from raw/CDict/DDict. Remaining: ` getFrameProgression ` .
78- 4 . ** Better dictionaries** — ` ZDICT_optimizeTrainFromBuffer_cover ` / ` _fastCover ` , ` finalizeDictionary ` .
82+ 3 . ~~ ** Frame inspection** ~~ — done: ` ZstdFrame ` (` isFrame ` , ` header ` , ` compressedSize ` , ` decompressedBound ` , ` dictId ` , skippable, ` getFrameProgression ` ); dict-id from raw/CDict/DDict.
83+ 4 . ~~ ** Better dictionaries** ~~ — done: COVER / fast-COVER optimisers, ` finalizeDictionary ` , ` getDictHeaderSize ` .
79845 . ~~ ** Typed errors** ~~ — done: ` ZstdException.code() ` returns ` ZstdErrorCode ` (via ` getErrorCode ` ).
8085
8186## Full symbol table
@@ -162,7 +167,7 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
162167| ` ZSTD_getDictID_fromDict ` | — | ✅ |
163168| ` ZSTD_getDictID_fromFrame ` | ✅ | ✅ |
164169
165- ### Dictionary training, ZDICT (4 /12)
170+ ### Dictionary training, ZDICT (8 /12)
166171
167172| Symbol | Bound | zstd-jni |
168173| ---| :---:| :---:|
@@ -171,10 +176,10 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
171176| ` ZDICT_isError ` | ✅ | — |
172177| ` ZDICT_trainFromBuffer ` | ✅ | ✅ |
173178| ` ZDICT_addEntropyTablesFromBuffer ` | — | — |
174- | ` ZDICT_finalizeDictionary ` | — | — |
175- | ` ZDICT_getDictHeaderSize ` | — | — |
176- | ` ZDICT_optimizeTrainFromBuffer_cover ` | — | — |
177- | ` ZDICT_optimizeTrainFromBuffer_fastCover ` | — | — |
179+ | ` ZDICT_finalizeDictionary ` | ✅ | — |
180+ | ` ZDICT_getDictHeaderSize ` | ✅ | — |
181+ | ` ZDICT_optimizeTrainFromBuffer_cover ` | ✅ | — |
182+ | ` ZDICT_optimizeTrainFromBuffer_fastCover ` | ✅ | — |
178183| ` ZDICT_trainFromBuffer_cover ` | — | — |
179184| ` ZDICT_trainFromBuffer_fastCover ` | — | — |
180185| ` ZDICT_trainFromBuffer_legacy ` | — | ✅ |
@@ -259,7 +264,7 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
259264| ` ZSTD_DCtx_refPrefix ` | — | — |
260265| ` ZSTD_DCtx_refPrefix_advanced ` | — | — |
261266| ` ZSTD_DCtx_reset ` | — | ✅ |
262- | ` ZSTD_DCtx_setFormat ` | — | — |
267+ | ` ZSTD_DCtx_setFormat ` | — ᵈ | — |
263268| ` ZSTD_DCtx_setMaxWindowSize ` | — | — |
264269| ` ZSTD_DCtx_setParameter ` | ✅ | ✅ |
265270| ` ZSTD_cParam_getBounds ` | ✅ | — |
@@ -269,7 +274,7 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
269274| ` ZSTD_estimateCCtxSize_usingCCtxParams ` | — | — |
270275| ` ZSTD_freeCCtxParams ` | — | — |
271276
272- ### Frame inspection (9 /13)
277+ ### Frame inspection (10 /13)
273278
274279| Symbol | Bound | zstd-jni |
275280| ---| :---:| :---:|
@@ -281,30 +286,30 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
281286| ` ZSTD_getDecompressedSize ` | — ᵈ | — |
282287| ` ZSTD_getFrameHeader ` | ✅ | — |
283288| ` ZSTD_getFrameHeader_advanced ` | — | ✅ |
284- | ` ZSTD_getFrameProgression ` | — | ✅ |
289+ | ` ZSTD_getFrameProgression ` | ✅ | ✅ |
285290| ` ZSTD_isFrame ` | ✅ | — |
286291| ` ZSTD_isSkippableFrame ` | ✅ | — |
287292| ` ZSTD_readSkippableFrame ` | ✅ | — |
288293| ` ZSTD_writeSkippableFrame ` | ✅ | — |
289294
290- ### Memory sizing (0 /14)
295+ ### Memory sizing (8 /14)
291296
292297| Symbol | Bound | zstd-jni |
293298| ---| :---:| :---:|
294299| ` ZSTD_decodingBufferSize_min ` | — | — |
295300| ` ZSTD_decompressionMargin ` | — | — |
296- | ` ZSTD_estimateCCtxSize ` | — | — |
301+ | ` ZSTD_estimateCCtxSize ` | ✅ | — |
297302| ` ZSTD_estimateCCtxSize_usingCParams ` | — | — |
298- | ` ZSTD_estimateCDictSize ` | — | — |
303+ | ` ZSTD_estimateCDictSize ` | ✅ | — |
299304| ` ZSTD_estimateCDictSize_advanced ` | — | — |
300- | ` ZSTD_estimateDCtxSize ` | — | — |
301- | ` ZSTD_estimateDDictSize ` | — | — |
305+ | ` ZSTD_estimateDCtxSize ` | ✅ | — |
306+ | ` ZSTD_estimateDDictSize ` | ✅ | — |
302307| ` ZSTD_getBlockSize ` | — ᵈ | — |
303308| ` ZSTD_sequenceBound ` | — | — |
304- | ` ZSTD_sizeof_CCtx ` | — | — |
305- | ` ZSTD_sizeof_CDict ` | — | — |
306- | ` ZSTD_sizeof_DCtx ` | — | — |
307- | ` ZSTD_sizeof_DDict ` | — | — |
309+ | ` ZSTD_sizeof_CCtx ` | ✅ | — |
310+ | ` ZSTD_sizeof_CDict ` | ✅ | — |
311+ | ` ZSTD_sizeof_DCtx ` | ✅ | — |
312+ | ` ZSTD_sizeof_DDict ` | ✅ | — |
308313
309314### Low-level block (0/12)
310315
@@ -329,7 +334,7 @@ sequence-producer hooks vs this library's frame-inspection and typed-error surfa
329334| ---| :---:| :---:|
330335| ` ZSTD_compressSequences ` | — | — |
331336| ` ZSTD_compressSequencesAndLiterals ` | — | — |
332- | ` ZSTD_generateSequences ` | — | ✅ |
337+ | ` ZSTD_generateSequences ` | — ᵈ | ✅ |
333338| ` ZSTD_mergeBlockDelimiters ` | — | — |
334339| ` ZSTD_registerSequenceProducer ` | — | ✅ |
335340
0 commit comments