structured-zstd 0.0.39

Pure Rust zstd implementation — managed fork of ruzstd. Dictionary decompression, no FFI.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.0.39]https://github.com/structured-world/structured-zstd/compare/v0.0.38...v0.0.39 - 2026-06-14

### Performance

- *(encode)* cap row match-finder table to upstream hashLog ([#417]https://github.com/structured-world/structured-zstd/pull/417)
- *(encode)* single price arena + interleaved cache in the optimal parser ([#415]https://github.com/structured-world/structured-zstd/pull/415)

## [0.0.38]https://github.com/structured-world/structured-zstd/compare/v0.0.37...v0.0.38 - 2026-06-14

### Added

- *(c-api)* complete the stable ZSTDLIB_API surface + btopt/btultra perf ([#413]https://github.com/structured-world/structured-zstd/pull/413)

## [0.0.37]https://github.com/structured-world/structured-zstd/compare/v0.0.36...v0.0.37 - 2026-06-13

### Added

- *(c-api)* dictionary attach surface + estimates + fastCover; wasm prepared dictionary ([#409]https://github.com/structured-world/structured-zstd/pull/409)

## [0.0.36]https://github.com/structured-world/structured-zstd/compare/v0.0.35...v0.0.36 - 2026-06-12

### Performance

- dict decode peak + direct path + repcode gate + entropy table build ([#403]https://github.com/structured-world/structured-zstd/pull/403)

## [0.0.35]https://github.com/structured-world/structured-zstd/compare/v0.0.34...v0.0.35 - 2026-06-11

### Added

- *(c-api)* advanced parameter API + streaming surface (compressStream2 / decompressStream) ([#400]https://github.com/structured-world/structured-zstd/pull/400)

### Performance

- *(encode)* size the output reservation from the observed ratio ([#398]https://github.com/structured-world/structured-zstd/pull/398)
- *(encode)* allocation-free copy-mode dictionary restore ([#397]https://github.com/structured-world/structured-zstd/pull/397)

## [0.0.34]https://github.com/structured-world/structured-zstd/compare/v0.0.33...v0.0.34 - 2026-06-10

### Added

- dictionary CDict-equivalent (encoder + C ABI + wasm + CLI); L22 dict memory 8.2x->1.13x ([#387]https://github.com/structured-world/structured-zstd/pull/387)
- *(c-api)* C ABI core (cdylib + vendored headers + simple/context/error/frame/dict wrappers) ([#386]https://github.com/structured-world/structured-zstd/pull/386)
- content-checksum modes + npm bindings, RingBuffer wrapped inline match-copy ([#385]https://github.com/structured-world/structured-zstd/pull/385)

### Performance

- *(encode)* zero per-frame allocations on the reused-compressor path ([#395]https://github.com/structured-world/structured-zstd/pull/395)
- *(decode)* hash each block while cache-hot on the direct path ([#394]https://github.com/structured-world/structured-zstd/pull/394)
- *(encode)* [**breaking**] cut dict-compress per-frame overhead; shrink wasm payload 18% ([#393]https://github.com/structured-world/structured-zstd/pull/393)
- *(encode)* monolithize dfast per-match helpers into the kernel ([#391]https://github.com/structured-world/structured-zstd/pull/391)
- *(encode)* 4-byte gate before HC chain common_prefix_len ([#392]https://github.com/structured-world/structured-zstd/pull/392)
- *(encode)* reshape dfast match-find toward donor structure ([#390]https://github.com/structured-world/structured-zstd/pull/390)
- *(encode)* close the level-4 dfast speed outlier (donor greedy double-fast) ([#389]https://github.com/structured-world/structured-zstd/pull/389)
- *(decode)* cut per-frame/block overhead (RingBuffer inline exec, FSE arrays, dict copy-on-write) ([#381]https://github.com/structured-world/structured-zstd/pull/381)
- *(decode)* cut HUF/FSE entropy-build overhead on the decode hot path ([#377]https://github.com/structured-world/structured-zstd/pull/377)

## [0.0.33]https://github.com/structured-world/structured-zstd/compare/v0.0.32...v0.0.33 - 2026-06-08

### Performance

- dict-attach across match finders + decode peak-alloc ([#359]https://github.com/structured-world/structured-zstd/pull/359)

## [0.0.31]https://github.com/structured-world/structured-zstd/compare/v0.0.30...v0.0.31 - 2026-06-07

### Added

- *(wasm)* streaming compress ZstdCompressStream + align decoder window cap to zstd default ([#367]https://github.com/structured-world/structured-zstd/pull/367)
- *(wasm)* simd128 kernel tier + npm package; LDM bench matrix variants ([#364]https://github.com/structured-world/structured-zstd/pull/364)
- *(encode)* configurable compression parameters API ([#360]https://github.com/structured-world/structured-zstd/pull/360)

### Harden

- *(decode)* uniform FrameContentSizeMismatch on Compressed overshoot ([#363]https://github.com/structured-world/structured-zstd/pull/363)

## [0.0.30]https://github.com/structured-world/structured-zstd/compare/v0.0.29...v0.0.30 - 2026-06-07

### Added

- *(decoding)* block-subset partial decode + per-block decompressed byte ranges ([#357]https://github.com/structured-world/structured-zstd/pull/357)

### Performance

- *(encode)* inline SIMD literal copy for medium runs ([#355]https://github.com/structured-world/structured-zstd/pull/355)

## [0.0.29]https://github.com/structured-world/structured-zstd/compare/v0.0.28...v0.0.29 - 2026-06-06

### Added

- *(bench)* report active CPU kernel tier + fix decode_loop corpus masking ([#351]https://github.com/structured-world/structured-zstd/pull/351)

### Documentation

- *(readme)* fix btultra/btultra2 level boundary in strategy table ([#334]https://github.com/structured-world/structured-zstd/pull/334)

### Fixed

- *(decode)* bound per-block output (decompression-bomb OOM) + L19 decode gap ([#350]https://github.com/structured-world/structured-zstd/pull/350)

### Performance

- *(codec)* per-strategy block-split levels + per-tier exec-macro seq monolith ([#354]https://github.com/structured-world/structured-zstd/pull/354)
- *(codec)* warm dictionary reuse (decode + encode) + relocate decompression-bomb guard ([#352]https://github.com/structured-world/structured-zstd/pull/352)
- *(encode)* store row match positions as u32 to cut peak memory ([#346]https://github.com/structured-world/structured-zstd/pull/346)
- *(encode)* right-size dfast/row/hash-chain tables for small inputs ([#345]https://github.com/structured-world/structured-zstd/pull/345)
- *(encode)* price the custom FSE table without building it ([#344]https://github.com/structured-world/structured-zstd/pull/344)
- *(encode)* cut small-input fixed cost on the fast levels ([#342]https://github.com/structured-world/structured-zstd/pull/342)
- *(encode)* hoist hash/chain fill rebase guard out of insert loop ([#340]https://github.com/structured-world/structured-zstd/pull/340)
- *(encode)* rebase matcher floor on reset instead of zeroing tables ([#338]https://github.com/structured-world/structured-zstd/pull/338)
- *(encode)* donor-correct block-split + block-precise decode errors ([#336]https://github.com/structured-world/structured-zstd/pull/336)
- *(encode)* decouple and monomorphize the row matcher ([#335]https://github.com/structured-world/structured-zstd/pull/335)
- *(encode)* close level-5 greedy speed gap (row match-span cap) ([#331]https://github.com/structured-world/structured-zstd/pull/331)
- *(encode)* donor row-0 params for Fast negative levels ([#330]https://github.com/structured-world/structured-zstd/pull/330)
- *(encode)* size-gated dictionary match-finding for the Fast strategy ([#328]https://github.com/structured-world/structured-zstd/pull/328)
- *(dict)* greedy set-cover segment selection in fastcover trainer ([#324]https://github.com/structured-world/structured-zstd/pull/324)

## [0.0.28]https://github.com/structured-world/structured-zstd/compare/v0.0.27...v0.0.28 - 2026-06-02

### Added

- *(decode)* kernel_* cargo features for per-tier CPU kernel selection ([#307]https://github.com/structured-world/structured-zstd/pull/307)

### Performance

- *(encode)* borrow one-shot input as Fast match window ([#318]https://github.com/structured-world/structured-zstd/pull/318)
- *(encode)* raw-pointer reads in Fast kernel backward extension ([#321]https://github.com/structured-world/structured-zstd/pull/321)
- *(decode)* route RLE-mode sequence tables through the fused path ([#320]https://github.com/structured-world/structured-zstd/pull/320)
- *(encode)* drop redundant per-match offset coding in Fast matcher ([#319]https://github.com/structured-world/structured-zstd/pull/319)
- *(encode)* dedup window<->history live-region storage ([#317]https://github.com/structured-world/structured-zstd/pull/317)
- *(encode)* map level 19 to btultra2 + align bench labels to clevels.h ([#315]https://github.com/structured-world/structured-zstd/pull/315)
- *(encode)* skip decoder-table build when loading a dict for encoding ([#314]https://github.com/structured-world/structured-zstd/pull/314)
- *(decode)* route bulk non-overlapping copies through memcpy (ERMS) ([#309]https://github.com/structured-world/structured-zstd/pull/309)
- *(encode)* vectorize the Row match-finder tag scan ([#305]https://github.com/structured-world/structured-zstd/pull/305)
- *(encode)* lower row-matcher min match to 5 (donor parity) ([#310]https://github.com/structured-world/structured-zstd/pull/310)
- *(encode)* align levels 13-15 to reference search budget ([#302]https://github.com/structured-world/structured-zstd/pull/302)
- *(decode)* unify SIMD-copy capability detection under the CpuKernel tag ([#304]https://github.com/structured-world/structured-zstd/pull/304)

### Bench

- *(dict)* report Rust dict-compressed size + emit compress-dict ratio ([#301]https://github.com/structured-world/structured-zstd/pull/301)

## [0.0.27]https://github.com/structured-world/structured-zstd/compare/v0.0.26...v0.0.27 - 2026-05-31

### Performance

- *(decode)* expand overlapping matches by doubling, not offset chunks ([#300]https://github.com/structured-world/structured-zstd/pull/300)
- *(decode)* inline donor match-copy on all targets via portable wildcopy ([#299]https://github.com/structured-world/structured-zstd/pull/299)
- *(decode)* unroll HUF 4-stream burst inner loop via const-generic ([#296]https://github.com/structured-world/structured-zstd/pull/296)
- *(decode)* skip zero-init of literals target — HUF overwrites everything ([#295]https://github.com/structured-world/structured-zstd/pull/295)
- *(fse)* kill iterator overhead in build_decoding_table, write decode via set_len ([#293]https://github.com/structured-world/structured-zstd/pull/293)
- *(decode)* straight-loop short path + donor-gated lookahead ring + SeqSymbol repack ([#289]https://github.com/structured-world/structured-zstd/pull/289)
- *(decode)* skip post-decode XXH64 when content_checksum_flag is 0 ([#287]https://github.com/structured-world/structured-zstd/pull/287)
- *(decode)* per-tier x86 kernel split + AVX2 32-byte match-copy (#279 Phase 3+4) ([#285]https://github.com/structured-world/structured-zstd/pull/285)
- *(decode)* lazy ring-buffer allocation for direct-eligible frames ([#282]https://github.com/structured-world/structured-zstd/pull/282)
- *(decode)* drop dead seq.of from pipelined ring slots ([#283]https://github.com/structured-world/structured-zstd/pull/283)

### Testing

- *(bench)* add encode_loop_z000033 example for clean encoder profiles ([#297]https://github.com/structured-world/structured-zstd/pull/297)
- *(decode)* decode_loop binary — add --mode ffi and --corpus path ([#288]https://github.com/structured-world/structured-zstd/pull/288)

## [0.0.26]https://github.com/structured-world/structured-zstd/compare/v0.0.25...v0.0.26 - 2026-05-27

### Added

- *(encoding+decoding)* FrameEmitInfo + opt-in per-block XXH64 sidecar ([#272]https://github.com/structured-world/structured-zstd/pull/272)
- *(decoding)* skippable-payload visitor callback on FrameDecoder ([#271]https://github.com/structured-world/structured-zstd/pull/271)

### Documentation

- *(#176)* Skippable Frame Magic Allocations registry (#270)

### Performance

- *(decode)* drop inline_never on repcode resolver, keep cold attr ([#281]https://github.com/structured-world/structured-zstd/pull/281)
- *(encoding)* HUF_flags_preferRepeat for fast strategies + small literals (#23 G6) ([#278]https://github.com/structured-world/structured-zstd/pull/278)
- *(decoding)* mirror donor ddictIsCold signal for pipelined dispatch ([#274]https://github.com/structured-world/structured-zstd/pull/274)
- *(fse)* rewrite build_decoding_table per donor ZSTD_buildFSETable_body shape ([#276]https://github.com/structured-world/structured-zstd/pull/276)
- *(decode)* route short-block fallback through inline executor (z000033 −25%) ([#269]https://github.com/structured-world/structured-zstd/pull/269)
- *(decode)* cache predefined FSE tables (small-4k-log-lines −69%) ([#268]https://github.com/structured-world/structured-zstd/pull/268)
- *(decode)* inline sequence executor for direct path + auto-route decode_all (z000033 −24%, high-entropy-1m parity) ([#263]https://github.com/structured-world/structured-zstd/pull/263)
- *(bench)* pre-touch decompress output Vec to kill page-fault artifact ([#260]https://github.com/structured-world/structured-zstd/pull/260)
- *(decode)* bump WILDCOPY_OVERLENGTH 16 → 32 for AVX2 chunked kernel reach ([#261]https://github.com/structured-world/structured-zstd/pull/261)
- *(decode)* RingBuffer % cap → branchless wrap helper (kills divl on i686, divq on x86_64) ([#255]https://github.com/structured-world/structured-zstd/pull/255)
- *(decode)* #247 Part 2 — kill divb in repeat_short_offset + force-inline UserSliceBackend::extend ([#254]https://github.com/structured-world/structured-zstd/pull/254)
- *(decode)* #247 Part 1 — expand FSE Entry to ZSTD_seqSymbol shape ([#252]https://github.com/structured-world/structured-zstd/pull/252)

### Testing

- *(bench)* unblock dict-driven bench matrix + add pure_rust_with_dict compress arm ([#277]https://github.com/structured-world/structured-zstd/pull/277)

### Harden

- *(decode)* fallible BufferBackend writes for RLE/Raw direct path ([#251]https://github.com/structured-world/structured-zstd/pull/251)

## [0.0.25]https://github.com/structured-world/structured-zstd/compare/v0.0.24...v0.0.25 - 2026-05-24

### Added

- *(skippable)* typed SkippableFrame API behind lsm feature ([#248]https://github.com/structured-world/structured-zstd/pull/248)
- *(decode)* expect_dict_id + expect_window_descriptor setters on FrameDecoder ([#249]https://github.com/structured-world/structured-zstd/pull/249)

### Performance

- *(decode)* direct-write decode_to_slice path ([#244]https://github.com/structured-world/structured-zstd/pull/244) ([#245]https://github.com/structured-world/structured-zstd/pull/245)

## [0.0.24]https://github.com/structured-world/structured-zstd/compare/v0.0.23...v0.0.24 - 2026-05-24

### Performance

- *(decode)* pack HUF decode table as u16 (donor HUF_DEltX1 layout) ([#243]https://github.com/structured-world/structured-zstd/pull/243)
- *(decode)* collapse HUF 4-stream burst-gate to single-cursor olimit ([#238]https://github.com/structured-world/structured-zstd/pull/238)
- *(encoder)* align lazy-band target_len with donor clevels.h table[0] [#239](https://github.com/structured-world/structured-zstd/pull/239)
- *(fast)* donor-parity hot-path cleanups in Fast kernel + inline short-literal append (#220 follow-up) ([#231]https://github.com/structured-world/structured-zstd/pull/231)

### Testing

- *(encoding)* donor-parity comparator for block splitter port ([#240]https://github.com/structured-world/structured-zstd/pull/240)
- *(bench)* add decompress-dict group to compare_ffi ([#236]https://github.com/structured-world/structured-zstd/pull/236)

## [0.0.23]https://github.com/structured-world/structured-zstd/compare/v0.0.22...v0.0.23 - 2026-05-23

### Added

- *(frame)* magicless frame format support ([#26]https://github.com/structured-world/structured-zstd/pull/26) ([#222]https://github.com/structured-world/structured-zstd/pull/222)

### Performance

- *(row)* drop eager block-boundary inserts ([#180]https://github.com/structured-world/structured-zstd/pull/180) ([#232]https://github.com/structured-world/structured-zstd/pull/232)
- *(decode)* 8-slot software prefetch pipeline for sequence execution ([#208]https://github.com/structured-world/structured-zstd/pull/208) ([#227]https://github.com/structured-world/structured-zstd/pull/227)
- *(encoder)* port donor ZSTD_compressBlock_fast — 4-cursor + per-level cParams + cmov + window-correctness (#198 phase 3) ([#229]https://github.com/structured-world/structured-zstd/pull/229)
- *(decoding)* integrate AVX2 unroll-2 wildcopy candidate ([#108]https://github.com/structured-world/structured-zstd/pull/108) ([#223]https://github.com/structured-world/structured-zstd/pull/223)
- *(encoder)* wire donor-shape Fast kernel into MatchGeneratorDriver (#198 phase 1b) ([#217]https://github.com/structured-world/structured-zstd/pull/217)
- *(encoder)* donor-shape Fast kernel modules (#198 phase 1a) ([#215]https://github.com/structured-world/structured-zstd/pull/215)
- *(fse)* elide bounds check on init_state + update_state decode reads ([#214]https://github.com/structured-world/structured-zstd/pull/214)
- *(decode)* SIMD-16 fast path for short offsets {1, 2, 4} ([#213]https://github.com/structured-world/structured-zstd/pull/213)
- *(decode)* const-generic HUF kernel monomorphisation for SIMD-fallback ([#212]https://github.com/structured-world/structured-zstd/pull/212)
- *(decode)* port donor HUF 4-stream burst with sentinel-bit ctz ([#201]https://github.com/structured-world/structured-zstd/pull/201)

### Testing

- *(hc)* cross-slice boundary position seeding regression test ([#235]https://github.com/structured-world/structured-zstd/pull/235)

## [0.0.22]https://github.com/structured-world/structured-zstd/compare/v0.0.21...v0.0.22 - 2026-05-19

### Added

- *(encoder)* strategy-aware literal gates (G4 + G5) ([#182]https://github.com/structured-world/structured-zstd/pull/182)
- *(bench)* #99 Rust↔FFI sequence-stream comparator ([#149]https://github.com/structured-world/structured-zstd/pull/149)

### Documentation

- bump quick-start dep version to 0.0.21 + drop legacy ruzstd Changelog.md ([#155]https://github.com/structured-world/structured-zstd/pull/155)

### Performance

- *(decode)* pack LL/ML metadata + hot-path micro-opts ([#197]https://github.com/structured-world/structured-zstd/pull/197)
- *(decode)* fused sequence executor + SIMD/FSE hot-path cleanup + DoS-safe rollback ([#194]https://github.com/structured-world/structured-zstd/pull/194)
- *(encoder)* align Fast strategy window_log with donor (17 → 19) ([#187]https://github.com/structured-world/structured-zstd/pull/187)
- *(encoder)* inline hash-chain walk into hash_chain_candidate (lazy L1) ([#185]https://github.com/structured-world/structured-zstd/pull/185)
- *(encoder)* G3 — whole-block bail-out before partition split ([#181]https://github.com/structured-world/structured-zstd/pull/181)
- *(encoder)* donor-parity greedy parse at L4 — ratio + speed win ([#179]https://github.com/structured-world/structured-zstd/pull/179)
- *(huff0)* cache encoded weight-description bytes on `HuffmanTable` and reuse in emit path ([#170]https://github.com/structured-world/structured-zstd/pull/170)
- *(huff0)* #167 cheap entropy proxy for table_log selection — no FSE-encode per candidate ([#168]https://github.com/structured-world/structured-zstd/pull/168)
- *(fse)* donor FSE_buildCTable_wksp parity — drop per-symbol Vec<State> ([#166]https://github.com/structured-world/structured-zstd/pull/166)
- *(fse)* replace next_state linear search with donor-parity flat tables + tune CI bench budgets ([#165]https://github.com/structured-world/structured-zstd/pull/165)

## [0.0.21]https://github.com/structured-world/structured-zstd/compare/v0.0.20...v0.0.21 - 2026-05-17

### Added

- *(encoding)* #23 add donor _fromBorders pre-split heuristic + broaden level coverage ([#140]https://github.com/structured-world/structured-zstd/pull/140)

### Fixed

- *(release)* untrack fuzz crash artifacts already gitignored ([#148]https://github.com/structured-world/structured-zstd/pull/148)
- *(bench)* restore sample_size=10, raise measurement_time to clear criterion floor ([#144]https://github.com/structured-world/structured-zstd/pull/144)

### Performance

- *(7pre)* enablement — donor outer/inner dfast Level 3 + cross-level FSE cache ([#146]https://github.com/structured-world/structured-zstd/pull/146)
- *(encoding)* #18 Phase 5 — LDM producer (gear hash + bucket table + search/emit) ([#139]https://github.com/structured-world/structured-zstd/pull/139)
- *(encoding)* #124 Phase 4 — HC speculative tail check + MatcherStorage enum dispatch ([#125]https://github.com/structured-world/structured-zstd/pull/125)
- *(encoding)* #111 Phase 3 — const-generic Strategy dispatch ([#123]https://github.com/structured-world/structured-zstd/pull/123)
- *(encoding)* #111 Phase 2 — saturating_* cleanup on hot path ([#121]https://github.com/structured-world/structured-zstd/pull/121)

### Refactored

- *(encoding)* #111 Phase 1e — migrate methods off HcMatchGenerator (Stages A–D) ([#119]https://github.com/structured-world/structured-zstd/pull/119)
- *(encoding)* #111 Phase 1d — split HcMatchGenerator into MatchTable / HcMatcher / BtMatcher ([#118]https://github.com/structured-world/structured-zstd/pull/118)
- *(encoding)* #111 Phase 1c — extract Simple matcher into simple/ ([#117]https://github.com/structured-world/structured-zstd/pull/117)
- *(encoding)* #111 Phase 1b — extract shared match-finder helpers ([#116]https://github.com/structured-world/structured-zstd/pull/116)
- *(encoding)* #111 Phase 1 — structural split of match_generator monolith ([#113]https://github.com/structured-world/structured-zstd/pull/113)

### Testing

- *(fuzz)* make test_all_artifacts skip when corpus dir is absent ([#151]https://github.com/structured-world/structured-zstd/pull/151)

### Bench

- add real peak-alloc metric for full encode/decode/memory baseline ([#143]https://github.com/structured-world/structured-zstd/pull/143)

## [0.0.20]https://github.com/structured-world/structured-zstd/compare/v0.0.19...v0.0.20 - 2026-05-12

### Performance

- *(decoding)* port upstream extend_and_fill / extend_from_reader for RLE+Raw blocks ([#114]https://github.com/structured-world/structured-zstd/pull/114)
- *(level22)* complete donor parity path ([#110]https://github.com/structured-world/structured-zstd/pull/110)

## [0.0.19]https://github.com/structured-world/structured-zstd/compare/v0.0.18...v0.0.19 - 2026-04-12

### Performance

- *(bench)* add wildcopy candidate research bench and dashboard range filter ([#107]https://github.com/structured-world/structured-zstd/pull/107)

## [0.0.18]https://github.com/structured-world/structured-zstd/compare/v0.0.17...v0.0.18 - 2026-04-12

### Performance

- *(decoding)* add shared dictionary handle ([#105]https://github.com/structured-world/structured-zstd/pull/105)

## [0.0.17]https://github.com/structured-world/structured-zstd/compare/v0.0.16...v0.0.17 - 2026-04-11

### Performance

- *(encoding)* complete ARM histogram path for #71 ([#104]https://github.com/structured-world/structured-zstd/pull/104)
- *(encoding)* CRC-gated hash mix for ARM and x86_64 ([#102]https://github.com/structured-world/structured-zstd/pull/102)

## [0.0.16]https://github.com/structured-world/structured-zstd/compare/v0.0.15...v0.0.16 - 2026-04-11

### Performance

- *(encoding)* early incompressible fast-path + benchmark parity ([#99]https://github.com/structured-world/structured-zstd/pull/99)

## [0.0.15]https://github.com/structured-world/structured-zstd/compare/v0.0.14...v0.0.15 - 2026-04-09

### Performance

- *(encoding)* SIMD-dispatch common_prefix_len ([#96]https://github.com/structured-world/structured-zstd/pull/96)

## [0.0.14]https://github.com/structured-world/structured-zstd/compare/v0.0.13...v0.0.14 - 2026-04-09

### Performance

- *(encoding)* enable one-shot size hint across levels safely ([#94]https://github.com/structured-world/structured-zstd/pull/94)

## [0.0.13]https://github.com/structured-world/structured-zstd/compare/v0.0.12...v0.0.13 - 2026-04-09

### Performance

- *(decoding)* SIMD HUF kernels with runtime dispatch ([#92]https://github.com/structured-world/structured-zstd/pull/92)

## [0.0.12]https://github.com/structured-world/structured-zstd/compare/v0.0.11...v0.0.12 - 2026-04-09

### Performance

- *(decoding)* branchless offset history, prefetch pipeline, and BMI2 triple extract ([#90]https://github.com/structured-world/structured-zstd/pull/90)

## [0.0.11]https://github.com/structured-world/structured-zstd/compare/v0.0.10...v0.0.11 - 2026-04-09

### Performance

- *(decoding)* add runtime-dispatched simd wildcopy ([#85]https://github.com/structured-world/structured-zstd/pull/85)

## [0.0.10]https://github.com/structured-world/structured-zstd/compare/v0.0.9...v0.0.10 - 2026-04-08

### Performance

- *(encoding)* add row-based match finder backend ([#84]https://github.com/structured-world/structured-zstd/pull/84)
- *(encoding)* rebase hc positions past u32 boundary ([#82]https://github.com/structured-world/structured-zstd/pull/82)

## [0.0.9]https://github.com/structured-world/structured-zstd/compare/v0.0.8...v0.0.9 - 2026-04-08

### Performance

- *(encoding)* reuse streaming encoded scratch buffer ([#80]https://github.com/structured-world/structured-zstd/pull/80)

## [0.0.8]https://github.com/structured-world/structured-zstd/compare/v0.0.7...v0.0.8 - 2026-04-07

### Fixed

- *(ci)* publish benchmark delta reports ([#75]https://github.com/structured-world/structured-zstd/pull/75)

### Performance

- *(bench)* multi-arch relative Rust-vs-FFI dashboard ([#78]https://github.com/structured-world/structured-zstd/pull/78)
- *(fse)* pack decoder entries and align decode tables ([#76]https://github.com/structured-world/structured-zstd/pull/76)
- *(bench)* add fastcover vs ffi dict-training delta ([#73]https://github.com/structured-world/structured-zstd/pull/73)

## [0.0.7]https://github.com/structured-world/structured-zstd/compare/v0.0.6...v0.0.7 - 2026-04-05

### Added

- *(encoding)* numeric compression levels (1-22) API ([#63]https://github.com/structured-world/structured-zstd/pull/63)

### Performance

- *(bench)* add rust/ffi delta benchmark artifacts ([#65]https://github.com/structured-world/structured-zstd/pull/65)

## [0.0.6]https://github.com/structured-world/structured-zstd/compare/v0.0.5...v0.0.6 - 2026-04-04

### Added

- *(encoding)* write frame content size in encoder output ([#60]https://github.com/structured-world/structured-zstd/pull/60)

### Performance

- *(decoding)* pre-allocate decode buffer from sequence block analysis ([#59]https://github.com/structured-world/structured-zstd/pull/59)
- *(decoding)* branchless bitstream reader with mask table and BMI2 support ([#58]https://github.com/structured-world/structured-zstd/pull/58)
- *(decoding)* dual-state interleaved FSE sequence decoding ([#55]https://github.com/structured-world/structured-zstd/pull/55)

## [0.0.5]https://github.com/structured-world/structured-zstd/compare/v0.0.4...v0.0.5 - 2026-04-03

### Added

- *(encoding)* add Best compression level (zstd level 11, btlazy2 strategy) ([#53]https://github.com/structured-world/structured-zstd/pull/53)
- *(encoding)* add Better compression level (zstd level 7, lazy2 strategy) ([#48]https://github.com/structured-world/structured-zstd/pull/48)

### Performance

- *(decoding)* 4-stream interleaved Huffman decode and bulk table init ([#54]https://github.com/structured-world/structured-zstd/pull/54)

## [0.0.4]https://github.com/structured-world/structured-zstd/compare/v0.0.3...v0.0.4 - 2026-04-01

### Added

- *(encoding)* add streaming write encoder ([#45]https://github.com/structured-world/structured-zstd/pull/45)
- *(encoding)* add dictionary compression support ([#44]https://github.com/structured-world/structured-zstd/pull/44)

### Performance

- *(decoding)* optimize sequence execution with overlap fast paths ([#42]https://github.com/structured-world/structured-zstd/pull/42)
- *(encoding)* interleave fastest hash fill insertion ([#41]https://github.com/structured-world/structured-zstd/pull/41)
- *(encoding)* align fastest matcher with zstd fast path ([#39]https://github.com/structured-world/structured-zstd/pull/39)

### Testing

- *(bench)* expand benchmark parity matrix ([#43]https://github.com/structured-world/structured-zstd/pull/43)
- *(bench)* expand zstd benchmark suite ([#38]https://github.com/structured-world/structured-zstd/pull/38)

## [0.0.3]https://github.com/structured-world/structured-zstd/compare/v0.0.2...v0.0.3 - 2026-03-26

### Added

- *(encoder)* FSE table reuse and offset history optimization ([#33]https://github.com/structured-world/structured-zstd/pull/33)
- large literals block support (>262KB) ([#30]https://github.com/structured-world/structured-zstd/pull/30)

### Fixed

- *(encoding)* implement default compression level ([#34]https://github.com/structured-world/structured-zstd/pull/34)
- use local Readme.md for crate readme

## [0.0.2]https://github.com/structured-world/structured-zstd/compare/v0.0.1...v0.0.2 - 2026-03-25

### Added

- managed fork setup — README, FUNDING, crate rename to structured-zstd ([#2]https://github.com/structured-world/structured-zstd/pull/2)