Releases: eminence/procfs
v0.13.0
Breaking changes
This release has several breaking API changes you should be aware of:
- MSRV has been changed from 1.34 to 1.48
- The
Process
struct has been changed in some important ways:- Internally, it now maintains a handle to an opened
/proc/<pid>
directory. So eachProcess
will have an open file handle, which can matter in extreme cases when you have a large number ofProcess
objects created. - Because each
Process
has a handle to its opened proc directory, there is no longer any PID reuse problems (that is, there is no risk of accidentally getting process information for a new process that has reused a PID) Process
no longer implementsClone
.Process
no longer has a public memberstats
member that gets pre-populated on construction. If you want this info, you now need to explicitly call theProcess::stat()
function
- Internally, it now maintains a handle to an opened
New features
- Revive RFC: Change Process to use directory fd by @sunfishcode in #171
- Add support for
/proc/<pid>/pagemap
by @EliaGeretto in #166 - Process: Add support for network by @arilou in #176
Internal changes
- Add build-script to provide a nicely readable error if on unsupported platform by @macisamuele in #167
- Fix a race condition in the
test_task_runsinglethread
test. by @sunfishcode in #169 - Bump MSRV to 1.42 by @eminence in #170
- Update github-actions configuration to run all the github actions up to completion by @macisamuele in #172
- Improve
CpuInfo
performances by @macisamuele in #168 - Build with cargo update -Z minimal-versions by @xfix in #173
- Update to the latest rustix version by @eminence in #174
- Clippy and rustfmt fixes by @eminence in #175
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Breaking changes
The flate2
dependencies was used only in the kernel_config
method, which would try to read a compressed /proc/config.gz
file if it existed. The flate2
dependency is now optional (and enabled by default). If you are using procfs with "default-features = false" and you are using the kernel_config
method, pay special attention here -- you might want to manually enable the flate2
feature.
New features
- /proc/sysvipc/shm by @tatref in #154
- Add support for /proc/net/route by @pymongo in #162
- Add support for /proc/sys/kernel/{ostype,version} by @KernelErr in #163
Bug fixes
Full Changelog: v0.11.0...v0.12.0
v0.11.1
v0.11.0
Breaking changes
- Switch to u64 from usize in many places by @h33p in #147
- On 64-bit machines, this change should have no impact on behavior, but it is still a breaking change as these types are part of the public API.
- Remove unwraps from our lazy statics by @eminence in #150
- This change should make
procfs
panic even less, but as the cost of a breaking API change that wraps the return value of some functions in aResult
- This change should make
New Features
- Update docs and CI for MSRV by @eminence in #149
- Add support for /proc/uptime by @oblique in #146
- MMapPath::Vsys for /SYSV pseudo files by @tatref in #151
Bug fixes
- Handle process cgroup paths containng ':' by @alfonsoros88 in #152
New Contributors
- @h33p made their first contribution in #147
- @oblique made their first contribution in #146
- @tatref made their first contribution in #151
- @alfonsoros88 made their first contribution in #152
Full Changelog: v0.10.1...v0.11.0
v0.10.1
Note The v0.10.1 release was actually released August 26, 2021. This release created in github was done after the fact
What's Changed
New features
Bug fixes
- fix compilation for 32-bit builds. It is tested for target armv7-unkn… by @anstylian in #142
New Contributors
- @anstylian made their first contribution in #142
Full Changelog: v0.10.0...v0.10.1
v0.10.0
Breaking changes
- Use u16 for kernel patch version number #137
- Changed inodes to u64, fixed a test, and updated a doc string #132
New features
- Derive Clone for all public structs and enums. #128
- Get all processes with a custom root of /proc path #122
- Create FDInfo from raw fd and pid #123
- feat: create task by specify pid and tid #134
- Add support for /proc/pid/ns #135
Bug fixes
v0.9.0
Please note that this are several API incompatible changes, compared to the 0.8.x release. Also, the Minimum Supported Rust Version has been changed from 1.33.0 to 1.34.0
New features
- Swap libflate for flate2 (#100)
- Support
/proc/[pid]/task/[tid]/status
(#110) - Introduce fd_count() in addition to fd() (#105)
- Add Android support (#95)
Bug fixes
- Handle locks that are marked as "blocked" (#109)
Breaking changes
v0.8.1
v0.8.0
New features
Several new sysctl functions are added, in the following areas:
- epoll
- fs
- keyring
- kernel
Support for parsing new files, in the following areas:
- kernel keyrings
- Listing tasks (threads) in a process
- File locks
- ARP table
Bug fixes
- Procfs should panic even less often now, when parsing garbage data
Breaking changes
- A typo is fixed in the name of a public field: hugetlbpages (#83)