Skip to content

build(deps): bump miniz_oxide from 0.8.9 to 0.9.1 - #14

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/miniz_oxide-0.9.1
Open

build(deps): bump miniz_oxide from 0.8.9 to 0.9.1#14
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/miniz_oxide-0.9.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 13, 2026

Copy link
Copy Markdown

Bumps miniz_oxide from 0.8.9 to 0.9.1.

Changelog

Sourced from miniz_oxide's changelog.

0.9.1 - 2026-03-13

Bug Fixes

  • reject incomplete Huffman trees with max code length > 1 (#190) - (c40992a) - Lilith River
  • bump simd_adler32 dependency version (needed for wasm issue fix) - (a9b3756) - oyvindln

Other

  • add wasmtime to workflow for running tests with wasip1 - (f70ad10) - oyvindln
  • box LZOxide.codes on wasm32 to reduce stack allocation (#189) - (d0f3e0c) - Fabrício Bracht

0.9.0 - 2026-01-12

Version bump due to a minor API break for having to add enum variants. Many enums have been made non_exhaustive to make it easier to avoid API breaks in the future. The minimum rust version is now 1.60.

Bug Fixes

  • (deflate) simplify stored compression, fixes to updating compresson level after start - (c5a7662) - oyvindln
  • (deflate) make more stuff non_exhaustive, reduce deflate stack usage a tiny bit - (cd2d14f) - oyvindln
  • (miniz_oxide) make tdeflflush and compressionstrategy non exhaustive - (130d51d) - oyvindln
  • fix flush test, make new simpler init function for compressoroxide and make flag creation function const - (3bb0d51) - oyvindln
  • make more funtions const and make tinflstatus non_exhaustive - (84a94e8) - oyvindln

Documentation

  • (inflate) add documentation and doctest for decompress_slice_iter_to_slice - (97465ca) - oyvindln

Features

  • feat(deflate): add window_bits feature for deflate, don't set wbits - (e70e395) - oyvindln

Other

  • Implement support for partial flushes (#179) - (2ede365) - Jonathan Behrens
  • Add decompress_with_limit to handle ring buffers (#183) - (bac1abe) - peckpeck
  • Flush improvements (#185) - (0d276ac) - Jim Peters
  • Fix flush_block to always insert zlib header correctly (#187) - (414d9b8) - Jim Peters

Commits

@dependabot @github

dependabot Bot commented on behalf of github Aug 13, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, rust. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

zacharywhitley pushed a commit that referenced this pull request Aug 13, 2026
…BreakSectionBuilder

Adds the UAX #14 line-break capability to the shared SCUD loader in
preparation for the standalone `stringcheese-icu-linebreak` crate.

New wire surface:
- `CAP_LINEBREAK` = b"LBRK" capability tag
- `SECT_LB_CLASSES` (per-scalar Line_Break property, same wire layout
  as `SECT_GRAPHEME_CLASSES`)
- `SECT_LB_RULES` (rules-id marker byte)
- `SECT_LB_TAILORINGS` (CJK strictness byte per UAX #14 § 6.1)
- 43-value `LineBreakClass` enum covering the full UAX #14 class set
  (OP / CL / CP / QU / GL / NS / EX / SY / IS / PR / PO / NU / AL /
  HL / ID / IN / HY / BA / BB / B2 / ZW / CM / WJ / H2 / H3 / JL /
  JV / JT / RI / EB / EM / ZWJ / CJ / SG / AI / CB / BK / CR / LF /
  NL / SP / SA + XX default)
- `RULES_UAX14_DEFAULT` well-known rules-id constant
- `LB_STRICTNESS_{LOOSE,NORMAL,STRICT}` strictness-tag constants
- `LineBreakDataView` zero-copy view with binary-search class lookup
- `LineBreakSectionBuilder` writer
- `ScudFile::as_linebreak_data()` capability-projection accessor

4 new unit tests exercise pack round-trip, empty-pack defaults,
class-enum round-trip, and capability-mismatch guard.
zacharywhitley pushed a commit that referenced this pull request Aug 13, 2026
…18n-linebreak WIT

Introduces `stringcheese-icu-linebreak`, the standalone Rust algorithm
crate for Unicode line breaking per UAX #14, and its WIT contract at
`component/wit/linebreak/stringcheese-icu-linebreak.wit`
(`tegmentum:i18n-linebreak@0.1.0`).

Closes the "UAX #14 deferred to separate crate" note from Phase 5
(docs/design/wit-i18n.md § 8.5) — split from the segment crate
because the LB rule set is much larger than UAX #29's grapheme /
word / sentence tables.

Algorithm crate:
- `LineBreakEngine` with optional per-locale `LineBreakPack`; the
  pack's class section overrides the built-in classifier when
  populated. Empty pack falls through to `classes::line_break_class`.
- Full UAX #14 rule set implemented rule-by-rule in `pair_decision`:
  LB1 class resolution (AI/CJ/SA/SG/XX folds, strictness-sensitive
  for CJ), LB2/LB3 sot/eot, LB4/LB5 mandatory breaks (BK/CR/LF/NL
  with CR × LF pairing), LB6-LB31 pair-table rules including LB9
  CM/ZWJ fold-into-preceding-class, LB25 numeric-expression run
  tracking, LB26/LB27 Hangul syllable composition, LB30a RI-pair
  parity, LB30b EB × EM.
- `Strictness::Loose / Normal / Strict` enum + engine setter driving
  the CJK strictness tailoring per UAX #14 § 6.1.
- `BreakOpportunity { offset, kind }` records with `BreakKind::
  Mandatory | Allowed` — layout engines can distinguish LB4/LB5
  mandatory breaks from discretionary opportunities.

WIT contract:
- `find-breaks(text)` and `find-breaks-with-strictness(text, strictness)`
  return `list<break-opportunity>` in strictly-increasing offset order.
- `line-break-strictness` enum for the CJK tailoring.
- `break-kind` variant for mandatory vs allowed classification.
- `capabilities.supported-locales` / `capabilities.supports` — Phase 5
  ships root-only, returns true for every input for forward-compat.

Test coverage:
- 53 unit tests grouped by numbered rule (one section per LB rule).
- 3 wit-parser smoke tests (`tests/wit_parse.rs`) — WIT package name,
  world declaration, interface enumeration.
- 111 hand-picked LineBreakTest.txt vectors (`tests/uax14_vectors.rs`)
  running in superset mode — every enumerated break must appear;
  extra breaks tolerated so future classifier growth doesn't regress.
  Pass rate: 111/111.

No external deps beyond stringcheese-scud + std/alloc — the wasm
component stays lean. `#![forbid(unsafe_code)]` on the algorithm crate.
zacharywhitley pushed a commit that referenced this pull request Aug 13, 2026
…18n-linebreak

Reference WebAssembly Component-Model packaging of the UAX #14
line-break capability. Mirrors the `stringcheese-icu-segment-component`
template: dual `cdylib` + `rlib`, `wit-component` feature gate on
`wit-bindgen-rt` 0.44, pre-generated `src/bindings.rs` from
`wit-bindgen rust --runtime-path wit_bindgen_rt`, `AtomicPtr`-backed
`shared_engine()` singleton, in-process `wasmtime::component::bindgen!`
smoke tests.

Like the segment component, the linebreak component embeds NO SCUD
packs — the reference engine is `LineBreakEngine::new()`, running
pure-algorithm-driven UAX #14 rules from the built-in classification
table. Locale-specific tailorings (CJK dictionaries, Thai / Lao /
Khmer syllable segmentation, CSS `line-break` beyond CJK strictness)
are Phase 5 deferrals documented in the crate docs.

WIT-exports:
- `linebreak.find-breaks(text) -> list<break-opportunity>`
- `linebreak.find-breaks-with-strictness(text, strictness) -> list<...>`
- `capabilities.supported-locales() -> list<locale>` (returns [""])
- `capabilities.supports(loc) -> bool` (returns true for every input)

Smoke tests:
- 10 wasmtime tests cover CRLF single mandatory, LF alone, NEL,
  soft break after space, soft break after hyphen, no-break within
  numeric run, empty input, all three strictness variants, both
  capabilities exports.
- 5 native (non-wasm) unit tests inside `src/lib.rs` verify wit-parser
  gate + reference-engine sanity.

Measured sizes (aarch64 macOS, --release, wasmtime 26 / wasm-tools
1.219): raw module 56 739 B, componentised 79 193 B.
zacharywhitley pushed a commit that referenced this pull request Aug 13, 2026
…t jobs + design note

Adds two new CI jobs mirroring the segment-crate template:

- wasm-i18n-linebreak — native unit test job (52 UAX #14 rule tests +
  wit-parser gate + 111 hand-picked LineBreakTest.txt vectors).
- wasm-i18n-linebreak-component — wasm32-wasip1 build + wasm-tools
  componentise (with raw / wasm-opt -Oz size reporting) + wasmtime
  smoke test (10 tests via wasmtime::component::bindgen! typed
  bindings against the shipped WIT).

Adds `stringcheese-icu-linebreak-component` to the wasm-runtime
job's `--exclude` list for the same duplicate-export-symbol reason
the other icu-*-component crates are excluded.

Adds § 8.7 "Phase 5 follow-up — UAX #14 line breaking" to
`docs/design/wit-i18n.md`, cross-referencing § 8.5's UAX #14
deferral. Covers landed scope (SCUD extension, algorithm crate, WIT,
component wrapper, CI), measured wasm sizes, rules fully vs
approximated, red flags (LB25 numeric-expression simplification,
LB30 East-Asian-Width interaction, LB9 CM/ZWJ state-tracked fold,
mandatory-break queue), and deferred items (CJK dictionaries, CSS
line-break beyond CJK strictness, bidi-aware line breaking,
line-height / width-aware selection).
zacharywhitley pushed a commit that referenced this pull request Aug 13, 2026
zacharywhitley pushed a commit that referenced this pull request Aug 15, 2026
Adds a proptest dev-dep (gated off wasm, matching the align/mr/phonetic
pattern) and expands the in-crate test module to cover:

- SegmentUnit derive-guards (Copy + Eq + Hash used as a HashMap key,
  non-empty Debug).
- Bytes variant: empty input, single ASCII, multibyte scalar,
  four-byte emoji, round-trip via concat.
- CodePoints variant: empty input, single char, precomposed vs
  decomposed grapheme count, round-trip via concat, count matches
  str::chars().count().
- Lines variant: empty input, single line, consecutive newlines,
  CRLF pass-through (\r stays with preceding line), all-newlines.
- Fallback Words / Sentences (no-icu): whitespace-only, tab/newline
  as separator, no-terminator, period without space stays together,
  double-newline splitter, period-space splitter.
- ICU-backed Graphemes / Words / Sentences: empty input, combining
  mark stays with base, ZWJ family emoji stays one cluster,
  regional-indicator flag stays one cluster, round-trip via concat.
- UAX #14 lines variant: empty input, hard-newline break,
  round-trip via concat.
- Feature-gate panic paths for Graphemes without `icu` and
  LinesUax14 without `uax14-lines`, using `should_panic`.
- Property tests for Bytes/CodePoints/Lines round-trip, per-slice
  UTF-8 validity, code-point count invariant, and non-panic on
  arbitrary text. ICU-gated proptests round-trip Graphemes / Words /
  Sentences.

Test count: 7 -> 47 with --all-features; 42 with default features
(fallback paths).
Bumps [miniz_oxide](https://github.com/Frommi/miniz_oxide) from 0.8.9 to 0.9.1.
- [Changelog](https://github.com/Frommi/miniz_oxide/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Frommi/miniz_oxide/commits)

---
updated-dependencies:
- dependency-name: miniz_oxide
  dependency-version: 0.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title chore(deps): bump miniz_oxide from 0.8.9 to 0.9.1 build(deps): bump miniz_oxide from 0.8.9 to 0.9.1 Aug 15, 2026
@dependabot
dependabot Bot force-pushed the dependabot/cargo/miniz_oxide-0.9.1 branch from 3dc83cd to cda4d57 Compare August 15, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants