Skip to content

Changelog

Arun Prakash edited this page Dec 6, 2025 · 7 revisions

Changelog 📝

This wiki summarizes changes. For authoritative release notes, see the repository changelog:

2.6.0 (Latest)

Added - New Utilities & Namespaces

  • Byte Division (ByteDivisionNamespace): Split and distribute bytes
    • split(chunkSize) - Divide into fixed-size chunks
    • distribute(numParts) - Evenly distribute across parts
    • modulo(boundary) and paddingTo(boundary) for alignment
  • Bit Operations Enhancements: CPU cache line alignment
    • alignToL1CacheLine(), alignToL2CacheLine(), alignToL3CacheLine()
    • Cache alignment checks and slack calculations
  • Network Overhead: Protocol overhead calculation utilities
  • Byte Pluralization: Locale-aware pluralization with multiple rule sets
  • Advanced Features: BandwidthAccumulator, ByteAccessibility, ByteValidation
  • Time Utilities: NaturalTimeDelta, RelativeTime, Ordinal numbers
  • Number Formatting: SI number formatting for scientific notation

Added - Parsing Enhancements

  • Expression parsing for arithmetic operations ("10MB + 5GB")
  • Forced humanization parsing for ambiguous formats
  • Duration parsing for time-to-data conversions
  • Improved error messages and edge case handling

Testing & Developer Experience

  • 200+ new test cases for namespaces and utilities
  • Better IDE autocomplete with namespace organization
  • Consistent API patterns across all features
  • Zero breaking changes - fully backward compatible

Package Structure

  • byte_converter_full.dart - All features including statistics
  • Better organization with modular parsing files

2.5.0

Added - Namespace-Based API

  • New storage namespace: Access storage alignment utilities
  • New rate namespace: Access network rate utilities
  • Enhanced display namespace: New formatting methods
  • Pluralization Utilities: Smart pluralization for byte-related terms
  • Locale-aware pluralization support

Deprecated - Migration to Namespaces

Various methods deprecated in favor of namespace-based alternatives. See full changelog for migration guide.

2.4.2

Added / Improved

  • Package-wide public API documentation
  • Resolved all analyzer warnings

2.4.1

Added / Improved

  • Compound mixed-unit formatting improvements
  • Locale-aware thousands separators
  • README polish and examples

2.4.0

Added / Improved

  • Fixed-width alignment via ByteFormatOptions.fixedWidth
  • includeSignInWidth option for sign handling
  • Pattern formatting token S for explicit sign rendering

2.3.1

Fixed

  • Parsing gracefully falls back across SI, IEC, and JEDEC symbols so expressions with mixed units resolve under any selected standard.

2.3.0

Added / Improved

  • Locale-aware humanize formatting via new ByteFormatOptions.locale and useGrouping controls, powered by intl
  • Optional byte_converter_intl.dart entry enables locale formatting without forcing intl on the default import
  • Built-in localized unit-name maps (en, de, fr) plus registerLocalizedUnitNames/clearLocalizedUnitNames helpers for custom translations
  • Non-throwing tryParse methods for ByteConverter, BigByteConverter, and DataRate that return detailed diagnostics
  • Shared humanize pipeline now caches NumberFormat instances and gracefully falls back to legacy formatting if locale data is missing
  • Added comprehensive regression tests covering localized output and grouping toggles for sizes and rates

Notes

  • Requires the intl package (already listed in pubspec.yaml). Consumers can ignore byte_converter_intl.dart to avoid the extra dependency in their build output.

2.2.0

  • BigInt support enhancements
  • Unified parsing improvements
  • Advanced formatting options (min/max fraction digits, spacer, signed, forceUnit)
  • Locale-friendly number parsing: NBSP, underscores, and mixed decimal/group separators

2.1.x

  • DataRate improvements and parsing updates
  • BigInt support with extended units (EB, ZB, YB)

2.0.0

  • Dart 3 support
  • Public API refinements
  • Immutable design with cached calculations

(For the full, accurate history, always refer to the repo CHANGELOG.)

Clone this wiki locally