#parser #byte-size #byte

no-std parse-size

Parse byte size into integer accurately

2 stable releases

1.1.0 Sep 17, 2024
1.0.0 May 4, 2021

#196 in Parser implementations

Download history 35840/week @ 2024-07-17 35370/week @ 2024-07-24 34543/week @ 2024-07-31 34593/week @ 2024-08-07 31449/week @ 2024-08-14 38759/week @ 2024-08-21 34349/week @ 2024-08-28 35490/week @ 2024-09-04 33558/week @ 2024-09-11 35405/week @ 2024-09-18 38512/week @ 2024-09-25 36759/week @ 2024-10-02 32675/week @ 2024-10-09 40587/week @ 2024-10-16 38608/week @ 2024-10-23 28650/week @ 2024-10-30

147,497 downloads per month
Used in 26 crates (19 directly)

MIT license

25KB
369 lines

parse-size

Crates.io docs.rs Build status MIT License

parse-size is an accurate, customizable, allocation-free library for parsing byte size into integer.

use parse_size::parse_size;

assert_eq!(parse_size("0.2 MiB"), Ok(209715));
assert_eq!(parse_size("14.2e+8"), Ok(14_2000_0000));

Features

  • Supports both binary and decimal based prefix up to exabytes.
  • Numbers can be fractional and/or in scientific notation. parse-size can accurately parse the input using the full 64-bit precision.
  • The unit is case-insensitive. The "B" suffix is also optional (1 KiB = 1 kib = 1Ki).
  • Fractional bytes are allowed, and rounded to nearest integer (2.5 KiB = 2560, 2.5B = 3).
  • Underscores and spaces in the numbers are ignored to support digit grouping (123_456 = 123456).
  • Conventional units (KB, GB, ...) can be configured to use the binary system.
  • #![no_std]-capable, no dependencies, and uses no heap allocation.

No runtime deps