# 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.3] (2026-05-28)
### Added
* `ProcError::is_not_found()`
* `tests/pidentry.rs`
### Fixed
* bug: not found of `get_pidentries()`
## [0.4.2] (2026-05-26)
### Added
* `tests/pidentry_comm.rs`
### Fixed
* bug: `pidentry_xxx()`
## [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.3..HEAD
[0.4.3]: https://github.com/aki-akaguma/linux-procfs/compare/v0.4.2..v0.4.3
[0.4.2]: https://github.com/aki-akaguma/linux-procfs/compare/v0.4.1..v0.4.2
[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