linux-procfs 0.4.1

The linux-procfs is the data snap library for the `/proc/` filesystem on the linux os.
Documentation
# Changelog: linux-procfs

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


## [0.4.1] 2026-05-25
### Fixed
* `make test-maxium` bugs

## [0.4.0] 2026-05-25
### Added
* Custom error type `ProcError` and result alias `ProcResult` in `src/error.rs`.
* Fallible update methods (`try_update`, `try_update_with_pid`, etc.) in `util`.
* `SystemConfig` struct to allow customizing buffer capacities.
* `System::with_config` method to initialize `System` with a custom configuration.
* Constants for all default buffer capacities (e.g., `DEFAULT_CAPACITY_STAT`).
* `FromBytes` trait and `ProcScanner` struct in `src/scanner.rs` for optimized, allocation-free, and unified parsing.

### Changed
* `cargo test --tests` in `.github/workflows/test-macos.yml`
* Refactored all `get_*` methods in `System` to return `ProcResult<T>` instead of `T`. This is a breaking change.
* Refactored all parsers to propagate errors using `?` instead of panicking with `unwrap()` or `unreachable!()`.
* Updated path handling to use `PathBuf` joining for better reliability on non-UTF-8 paths.
* Updated integration tests and documentation examples to accommodate the new fallible API.
* Refactored `System` methods to use dynamic capacities from `SystemConfig` instead of hardcoded magic numbers.
* Optimized all parsers to use direct byte-to-number parsing via `FromBytes`, eliminating intermediate `String` and `Cow<str>` allocations.
* Hardened encapsulation by making internal components (`ProcScanner`, `FileBuffer`, all parser structs, and internal search utilities) `pub(crate)`.
* Restricted visibility of `scanner` and `parser` internal submodules.

## [0.3.17] 2025-09-25
### Added
* `cguest` of `/proc/xxx/stat`
* more tests

### Changed
* update depend: memx(0.2), naive_opt(0.2)
* rust-version = "1.65.0"

### Fixed
* bug: some bits of cpufreqs, netdevs

## [0.3.16] 2024-06-18
### Fixed
* `clippy::unused_mut`

## [0.3.15] 2023-02-13
### Added
* `MIRIFLAGS=-Zmiri-disable-isolation` on `cargo miri`

### Changed
* refactored `Makefile`

### Removed
* `COPYING`

### Fixed
* `LICENSE-APACHE`, `LICENSE-MIT`

## [0.3.14] 2023-01-31
### Added
* `rust-version = "1.58.0"` into `Cargo.toml`
* `.github/workflows/test-ubuntu.yml`
* `.github/workflows/test-macos.yml`
* `.github/workflows/test-windows.yml`
* test status badges into `README.tpl`

### Fixed
* `clippy::uninlined_format_args`
* `clippy::manual_is_ascii_check`
* bug: `InvalidDigit` on windows, removed `\r` from buffer

## [0.3.13] 2023-01-10
### Added
* badges into `README.tpl`

### Changed
* reformat `CHANGELOG.md`

## [0.3.12] 2023-01-05
### Changed
* update crates: naive_opt(0.1.23), memx(0.1.23)

## [0.3.11] 2022-06-13
### Changed
* changes to edition 2021

## [0.3.10] 2021-11-14
### Added
* add more documents

### Changed
* update crates: cfg-iif(0.2.2), memx(0.1.18), naive_opt(0.1.16)

## [0.3.9] 2021-09-11
### Changed
* update crates: memx(0.1.17)

## [0.3.8] 2021-09-10
### Changed
* update crates: memx(0.1.16), naive_opt(0.1.14), semver(1.0.4)

## [0.3.7] 2021-07-07
### Changed
* update depends: cfg-iif(0.2.1), memx(0.1.14), naive_opt(0.1.13)
* modify .gitignore

## [0.3.6] 2021-07-01
### Changed
* to github

## 0.3.5 (2021-07-01)
### Added
* add document

### Changed
* change a param of System::new()

## 0.3.4 (2021-06-26)
### Changed
* update depends: cfg-iif(0.2)

## 0.3.3 (2021-06-23)
### Added
* add util::skip_to_pos()

## 0.3.2 (2021-06-06)
### Changed
* update depends: naive_opt(0.1.11)

## 0.3.1 (2021-04-20)
### Changed
* change from twoway to naive_opt

## 0.3.0 (2021-04-02)
### Fixed
* some fix for clippy of rustc v1.51.0, a renaming struct.

## 0.2.1 (2020-11-18)
### Added
* add README.md, COPYING, LICENSE-APACHE, LICENSE-MIT

## 0.2.0 (2020-10-08)
### Added
* add pub fn get_pidentry_stat()

## 0.1.5 (2020-10-04)
### Added
* add has_meminfo_slab_reclaimable

## 0.1.4 (2020-06-08)
### Fixed
* bug: support linux 5.4.0 procfs

## 0.1.3 (2018-06-08)
### Added
* add support linux 5.4.0 procfs

## 0.1.2 (2020-05-10)
### Changed
* change edition 2015 to 2018
* update crates

## 0.1.1 (2019-04-14)
### Changed
* I revised that based on 'cargo clippy'

## 0.1.0 (2018-06-14)
* first commit

[Unreleased]: https://github.com/aki-akaguma/linux-procfs/compare/v0.4.1..HEAD
[0.4.1]: https://github.com/aki-akaguma/linux-procfs/compare/v0.4.0..v0.4.1
[0.4.0]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.17..v0.4.0
[0.3.17]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.16..v0.3.17
[0.3.16]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.15..v0.3.16
[0.3.15]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.14..v0.3.15
[0.3.14]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.13..v0.3.14
[0.3.13]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.12..v0.3.13
[0.3.12]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.11..v0.3.12
[0.3.11]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.10..v0.3.11
[0.3.10]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.9..v0.3.10
[0.3.9]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.8..v0.3.9
[0.3.8]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.7..v0.3.8
[0.3.7]: https://github.com/aki-akaguma/linux-procfs/compare/v0.3.6..v0.3.7
[0.3.6]: https://github.com/aki-akaguma/linux-procfs/releases/tag/v0.3.6