-
Notifications
You must be signed in to change notification settings - Fork 1
Changelog
Arun Prakash edited this page Dec 6, 2025
·
7 revisions
This wiki summarizes changes. For authoritative release notes, see the repository changelog:
-
Byte Division (
ByteDivisionNamespace): Split and distribute bytes-
split(chunkSize)- Divide into fixed-size chunks -
distribute(numParts)- Evenly distribute across parts -
modulo(boundary)andpaddingTo(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
- 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
- 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
-
byte_converter_full.dart- All features including statistics - Better organization with modular parsing files
-
New
storagenamespace: Access storage alignment utilities -
New
ratenamespace: Access network rate utilities -
Enhanced
displaynamespace: New formatting methods - Pluralization Utilities: Smart pluralization for byte-related terms
- Locale-aware pluralization support
Various methods deprecated in favor of namespace-based alternatives. See full changelog for migration guide.
- Package-wide public API documentation
- Resolved all analyzer warnings
- Compound mixed-unit formatting improvements
- Locale-aware thousands separators
- README polish and examples
- Fixed-width alignment via
ByteFormatOptions.fixedWidth -
includeSignInWidthoption for sign handling - Pattern formatting token
Sfor explicit sign rendering
- Parsing gracefully falls back across SI, IEC, and JEDEC symbols so expressions with mixed units resolve under any selected standard.
-
Locale-aware humanize formatting via new
ByteFormatOptions.localeanduseGroupingcontrols, powered byintl -
Optional
byte_converter_intl.dartentry enables locale formatting without forcingintlon the default import -
Built-in localized unit-name maps (en, de, fr) plus
registerLocalizedUnitNames/clearLocalizedUnitNameshelpers for custom translations -
Non-throwing
tryParsemethods forByteConverter,BigByteConverter, andDataRatethat return detailed diagnostics - Shared humanize pipeline now caches
NumberFormatinstances 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
- Requires the
intlpackage (already listed inpubspec.yaml). Consumers can ignorebyte_converter_intl.dartto avoid the extra dependency in their build output.
- 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
- DataRate improvements and parsing updates
- BigInt support with extended units (EB, ZB, YB)
- Dart 3 support
- Public API refinements
- Immutable design with cached calculations
(For the full, accurate history, always refer to the repo CHANGELOG.)