procfs breaking changes

cargo

21 curated breaking changes across major versions of procfs. Use this as a migration checklist before bumping dependencies.

21
changes
Breaking changes by transition
  • v0.8.1 \u2192 v0.9.0breaking

    Store cputime in ticks, not fractional seconds (#106)

  • v0.8.1 \u2192 v0.9.0breaking

    Remove deprecated functions (#107)

  • v0.8.1 \u2192 v0.9.0breaking

    Minimum supported rust version has been changed from 1.33.0 to 1.34.0

  • v0.8.1 \u2192 v0.9.0breaking

    Add a private field to some large structs (#101)

  • v0.7.9 \u2192 v0.8.0breaking

    A typo is fixed in the name of a public field: [hugetlbpages](https://docs.rs/procfs/0.8.0/procfs/process/struct.Status.html#structfield.hugetlbpages) (#83)

  • v0.14.2 \u2192 v0.15.0breaking

    ticks_per_second and page_size are infallible by @eminence in https://github.com/eminence/procfs/pull/235

  • v0.14.2 \u2192 v0.15.0breaking

    parse uid for /proc/net/{tcp,udp} by @trinity-1686a in https://github.com/eminence/procfs/pull/231

  • v0.14.2 \u2192 v0.15.0breaking

    Refactor and expose memory map processing. by @afranchuk in https://github.com/eminence/procfs/pull/237

  • v0.13.2 \u2192 v0.14.0breaking

    Process: namespaces: Change from Vec to HashMap by @arilou in https://github.com/eminence/procfs/pull/185

  • v0.12.0 \u2192 v0.13.0breaking

    `Process` no longer implements `Clone`.

  • v0.12.0 \u2192 v0.13.0breaking

    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)

  • v0.12.0 \u2192 v0.13.0breaking

    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.

  • v0.12.0 \u2192 v0.13.0breaking

    The `Process` struct has been changed in some important ways:

  • v0.12.0 \u2192 v0.13.0breaking

    MSRV has been changed from 1.34 to 1.48

  • v0.11.1 \u2192 v0.12.0breaking

    Make the flate2 dependency optional by @eminence in https://github.com/eminence/procfs/pull/157 The `flate2` dependencies was used only in the [`kernel_config`](https://docs.rs/procfs/latest/procfs/fn.kernel_config.html) 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

  • v0.10.1 \u2192 v0.11.0breaking

    Switch to u64 from usize in many places by @h33p in https://github.com/eminence/procfs/pull/147

  • v0.10.1 \u2192 v0.11.0breaking

    Remove unwraps from our lazy statics by @eminence in https://github.com/eminence/procfs/pull/150

  • v0.10.1 \u2192 v0.11.0breaking

    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`

  • v0.10.1 \u2192 v0.11.0breaking

    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.

  • v0.9.0 \u2192 v0.10.0breaking

    Changed inodes to u64, fixed a test, and updated a doc string #132

  • v0.9.0 \u2192 v0.10.0breaking

    Use u16 for kernel patch version number #137

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/procfs
procfs breaking changes — Cargo migration guide | DepScope