https://github.com/kennytm/parse-size
Parse byte size into integer accurately.
https://github.com/kennytm/parse-size
Last synced: 4 months ago
JSON representation
Parse byte size into integer accurately.
- Host: GitHub
- URL: https://github.com/kennytm/parse-size
- Owner: kennytm
- License: mit
- Created: 2021-05-04T07:48:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-17T08:04:05.000Z (about 1 year ago)
- Last Synced: 2025-07-13T17:50:08.821Z (5 months ago)
- Language: Rust
- Size: 14.6 KB
- Stars: 29
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
parse-size
==========
[](https://crates.io/crates/parse-size)
[](https://docs.rs/parse-size)
[](https://github.com/kennytm/parse-size/actions?query=workflow%3ARust)
[](./LICENSE.txt)
`parse-size` is an accurate, customizable, allocation-free library for
parsing byte size into integer.
```rust
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.