Skip to content

Releases: eminence/procfs

v0.13.0

02 Jul 20:07
Compare
Choose a tag to compare

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 each Process will have an open file handle, which can matter in extreme cases when you have a large number of Process 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 implements Clone.
    • Process no longer has a public member stats member that gets pre-populated on construction. If you want this info, you now need to explicitly call the Process::stat() function

New features

Internal changes

Full Changelog: v0.12.0...v0.13.0

v0.12.0

10 Dec 21:37
Compare
Choose a tag to compare

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

Bug fixes

Full Changelog: v0.11.0...v0.12.0

v0.11.1

26 Nov 17:51
Compare
Choose a tag to compare

Bug fixes

v0.11.0

14 Oct 14:20
Compare
Choose a tag to compare

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 a Result

New Features

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

14 Oct 13:50
Compare
Choose a tag to compare

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

Full Changelog: v0.10.0...v0.10.1

v0.10.0

23 Aug 04:03
9e85e3c
Compare
Choose a tag to compare

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

  • When writing files, don't open the file for read #120
  • Pin hex to 0.4.2 to restore MSRV of 1.34 #129

v0.9.0

14 Nov 18:53
Compare
Choose a tag to compare

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

  • Minimum supported rust version has been changed from 1.33.0 to 1.34.0
  • Remove deprecated functions (#107)
  • Store cputime in ticks, not fractional seconds (#106)
  • Add a private field to some large structs (#101)

v0.8.1

03 Oct 16:03
Compare
Choose a tag to compare

(Released September 8, 2020)

New Features

  • A new method Process::task_main_thread to get the task for the main thread (#93)
  • A new method Task::Io() (#91)

Bug fixes

  • Fixed parsing of /proc/cpuinfo on systems that add extra info at the end of the file (like on a Raspberry Pi) (#92)

v0.8.0

12 Jul 03:25
Compare
Choose a tag to compare

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

v0.7.9

17 May 03:17
Compare
Choose a tag to compare

New Features:

  • Update version of libflate to v1.0. #73
  • Add support for diskstat info. #71
  • Add support for reading /proc/modules