Skip to content

Releases: KarpelesLab/intlrs

v0.4.1

11 Jun 22:57
53d6756

Choose a tag to compare

Other

  • implement h11/h12/h23/h24 hour cycles (0-vs-1 origin)
  • derive default hour cycle from locale data; keep weekday in date combos

v0.4.0

11 Jun 16:49
27c2a7f

Choose a tag to compare

Other

  • rustfmt the ECMA-402 number/datetime code + codegen emit_dates
  • ECMA-402 DateTimeFormat options + formatToParts
  • ECMA-402 NumberFormat options + formatToParts
  • add sub-second DateTime.millisecond field
  • raw-source Gregorian date data from official CLDR v48
  • linear-time connector folding (quadratic)
  • truncate normalization buffer on char boundary (wrong-fallback)
  • validate POSIX TZ rule field ranges (reject malformed M-rules)
  • document that to_unicode output is unvalidated (not for security decisions)
  • bounds-check names.bin parser (panic on malformed blob)
  • bound push_pend against MAX_DECOMP (latent OOB)
  • wrapping_add for regional-indicator parity counters (debug overflow)
  • guard forward conversions against i64 overflow (panic on extreme inputs)
  • bound find/contains unaligned-start scan (quadratic DoS)

v0.3.1

05 Jun 13:41
27a61fd

Choose a tag to compare

Other

  • use unsigned_abs in format_gmt_offset (i32::MIN panic)
  • guard empty separator in parse_decimal (latent hang) and saturating compact width
  • cap U-label code points before Punycode encode (encoder DoS)
  • memoize SB8 sentence lookahead (quadratic DoS)
  • bound window_decision scan (quadratic find/contains DoS)

v0.3.0

05 Jun 12:09
e442950

Choose a tag to compare

Other

  • mark Error #[non_exhaustive]
  • declare bidi feature dependency (fixes component-subsets CI)
  • enforce VerifyDnsLength (reject empty/trailing-root labels)
  • apply UTS #39 augmented (CJK) script sets in is_single_script
  • satisfy CI gates for security fixes (fmt, clippy, public-api snapshot)
  • resolve is_single_script via Script_Extensions intersection (UTS #39)
  • IDNA tests: adapt to fallible to_unicode; raise conformance rejection bar to 480
  • enforce full IDNA2008 validity (CheckBidi/ContextJ/Hyphens/V1/V5/V6) and re-canonicalize xn--
  • do not drop combining marks past MAX_COMBINING in NFC recomposition
  • O(1) matched-PDI lookup (latent quadratic)
  • linear find/contains (quadratic-scan DoS)
  • avoid O(n) Vec::remove in discontiguous matching
  • strip Default_Ignorable code points in UTS #39 skeleton (confusable-detection miss)
  • cap MessageFormat parse recursion depth (stack-overflow DoS)
  • use checked arithmetic in POSIX TZ offset parsing (i32 overflow panic/wrap)
  • cap punycode decode output (decompression-bomb DoS) and enforce 253-octet domain limit

v0.2.3

05 Jun 07:58
7198388

Choose a tag to compare

Other

  • reject malformed labels; make the conformance test honest
  • revert the eos-skip hack; add exhaustive BidiTest.txt conformance
  • gate out CLDR locales the parser mis-orders (correctness fix)
  • Remove ROADMAP.md (every item complete)

v0.2.2

05 Jun 07:02
e9980cd

Choose a tag to compare

Other

  • Collation for_locale: data-driven from official CLDR rules
  • Collation tailoring: unbounded weight allocation (pair-encoded primaries)
  • transliteration component delivered (mark done)
  • profiling addressed via benchmarks + size tracking
  • add Armenian + Georgian romanizations
  • Document collation tailoring capacity (gap-insertion limit)
  • add alphabetic index (index_labels / index_bucket)
  • Format spellout_ordinal regression test (rustfmt)
  • Fix RBNF stack overflow / runaway on adversarial input
  • add primary-strength string search (find/contains)
  • add ordinal spell-out (spell_ordinal)

v0.2.1

05 Jun 04:04
bc50497

Choose a tag to compare

Other

  • use then_some over then(||...) (clippy)
  • set quantifiers ([..]+/*/?) and $0 match-reference
  • Bundle more collation locales + fix 3-letter subtag resolution
  • full conformance (91707/91707) via isolate-boundary eos fix
  • Per-component Unicode features + iana-tz/full/names default (MSRV 1.86)
  • Default to everything: full + alloc + names (opt out for size)
  • Line breaking: full conformance (19338/19338) via LB15b EAW tailoring
  • Bundle more locale collation tailorings (hu, ro, sq, uk, vi)
  • add character-set sources ([abc x-z] > t)
  • add before/after context (ICU b { src } a > tgt syntax)
  • Add the full tabulated character Name database (names feature)
  • line-break now 19335/19338 after LB21a fix
  • Fix line-break LB21a: Hebrew-letter rule is HY-only, not HY|BA
  • Add cargo-public-api surface guard (CI)
  • multi-char targets (digraphs) + many more locale rules

v0.2.0

05 Jun 00:07
b404fed

Choose a tag to compare

Other

  • Add a rule-based Transform to transliteration (x > y rewrites)
  • Add collation expansions to the tailoring engine (ä → "ae")
  • document collation strength/numeric/tailoring
  • Add Tailoring::for_locale for well-known collations
  • handle <<, <<<, = relation levels (not just primary)
  • Add locale-tailored collation engine (Tailoring, primary reordering)
  • Add numeric collation (Collator::with_numeric, natural sort)
  • Add translit::any_ascii convenience (mixed-script -> ASCII)
  • Add collation strength levels (Collator::with_strength)
  • Add Greek->Latin transliteration (ELOT 743 / ISO 843)
  • Add Cyrillic->Latin transliteration (ISO 9)
  • Add remove_diacritics to the transliteration module
  • Add transliteration module: Latin-ASCII fold (translit::latin_ascii)
  • Fix format_compact panic on non-finite values
  • Add ordinal number formatting (number::format_ordinal)
  • Parse the compact c/e plural operand (PluralOperands)
  • Add cargo-fuzz harness (unicode + formatters targets)
  • Add bidi mirroring (bidi_mirror + is_bidi_mirrored)
  • Add Changes_When_* predicates (UAX #44)
  • Fix doc-comment placement on lowercase_str_lang
  • Add Lithuanian locale casing (retained dot above)
  • Track compiled binary size per tier in CI (sizeprobe example)
  • Gate differential test on the bmp tier
  • Format differential test (rustfmt)
  • Add differential tests against std (case mapping + predicates)
  • reject the trie migration; keep the paged match tables
  • Add Joining_Group property (UAX #9)
  • Add char_name for algorithmically-named characters (Hangul + ideographs)
  • Add algorithmic Hangul syllable names
  • Add MSRV CI job (Rust 1.70); fix f64::abs not in core on MSRV
  • Add Turkic (tr/az) locale-aware casing
  • Fix codegen clippy: allow too_many_arguments on emit_value_enum
  • Add context-sensitive lowercasing with Greek Final_Sigma
  • Add Indic_Positional_Category; factor a value-enum codegen helper
  • Add Indic_Syllabic_Category property (UAX #44)
  • Add Joining_Type property (Arabic shaping, UAX #9)
  • Add the Chinese (lunisolar) calendar
  • Add duration formatting; correct stale CLDR/formatter roadmap status
  • Add Age and Block character properties (UCD)
  • Fix panics on unvalidated input; fuzz every input-facing API
  • Add full IANA time-zone support via the timezone-data crate
  • Add native digit systems to number formatting
  • Add compact number notation (number::format_compact)
  • Add scientific number notation (number::format_scientific)
  • Add locale-aware number parsing (number::parse_decimal)
  • Add locale-driven RBNF cardinal spell-out
  • Add POSIX TZ time zones (intl::timezone)
  • Update the crate-level docs to describe the full library
  • Render localized Persian dates; share the non-Gregorian renderer
  • Add date arithmetic to DateTime (add_seconds/add_days/weekday)
  • Render localized Islamic (Hijri) dates
  • report embedded-data footprint (Phase 2 size tracking)
  • Add Hebrew calendar (Dershowitz-Reingold arithmetic)
  • Add Persian (Solar Hijri) and Japanese calendars
  • Add localized GMT offset formatting (CLDR time zones, data-light)
  • Add ISO-8601 timestamp parse/format to DateTime
  • Add calendar conversions (no_std): Gregorian, Islamic, ISO week
  • Parse BCP-47 extension and private-use subtags in Locale
  • Add locale negotiation (best-match)
  • Add likely-subtags maximize/minimize to Locale (CLDR / UTS #35)
  • Add flexible date skeleton formatting (CLDR availableFormats)
  • Remove English-only spellout
  • Add English number spell-out (RBNF)
  • Add Gregorian date/time formatting (CLDR / UTS #35)
  • Add ICU MessageFormat subset (intl::message)
  • Add measurement-unit formatting (CLDR / UTS #35)
  • Add locale display names (CLDR / UTS #35)
  • Embed CLDR formatter tables as no_std binary blobs; add currency

v0.1.4

04 Jun 10:09
33bad51

Choose a tag to compare

Other

  • Add relative-time formatting + fix non-alloc tier builds
  • Add locale-aware list formatting (CLDR / UTS #35)
  • Add locale-aware number formatting (CLDR / UTS #35)
  • Add CLDR ordinal plural rules
  • Add CLDR cardinal plural rules (UTS #35)
  • Implement the full bidi algorithm (UAX #9)
  • Add common boolean properties (Math, Dash, Hex_Digit, …)
  • Add BCP-47 locale parsing (Phase 3 foundation)
  • build on a bare-metal no_std target
  • Add Bidi_Class property + paragraph base direction (UAX #9)
  • Add IDNA / Punycode (UTS #46 + RFC 3492)
  • Add confusable / spoof detection (UTS #39)
  • Phase 2: add robustness fuzzing + criterion benchmarks
  • Add Unicode title-casing
  • Add Unicode identifiers (UAX #31)
  • Add line breaking (UAX #14)
  • Add ROADMAP.md (path to ICU feature parity)
  • Add sentence boundary segmentation (UAX #29)
  • Add word boundary segmentation (UAX #29)
  • Add grapheme cluster segmentation (UAX #29)

v0.1.3

04 Jun 07:46
19bc985

Choose a tag to compare

Other

  • add crates.io, docs.rs, CI, and license badges
  • Add whole-string case adaptors: uppercase/lowercase/fold
  • Format codegen (separate package, not covered by cargo fmt --all)
  • Add UTS #10 collation (DUCET root collation)