- Add
NetworkExt::mac_addressmethod andMacAddrtype. - Linux: Fix truncated environment retrieval.
- Implement
TryFrom<usize>andFromStrforGidandUid. - Implement
TryFrom<usize>forPid. - Fix documentation of
System::newabout CPU list not loaded by default.
- Add
ProcessExt::session_idmethod. - Linux: Ignore NFS disks.
- Apple: Greatly improve disk retrieval (I recommend reading the pull request first comment for more information here: GuillaumeGomez#855).
- Remove build script.
- Add
Process::wait. - Add "Good pratice" entry into the crate level documentation and in the README.
- Linux: More precise used memory computation.
- Windows: Fix disk information retrieval.
- Linux: Improve
Processdocument. - Linux: Fix a compilation error if the
apple-sandboxfeature is enabled. - Internal code improvements.
- Add
SystemExt::distribution_idmethod. - Update
ntapiversion to0.4. - Update minimum supported Rust version (MSRV) to
1.59forntapi0.4.
- Update minimum supported Rust version (MSRV) to
1.56to followonce_cellminor update.
- Linux: Fix process information retrieval.
- Linux: Get more components temperature.
- Linux: Fix disk name retrieval (which in turn fixed disk type retrieval).
- macOS M1: Fix segmentation fault crash.
- Switch memory unit from kilobytes to bytes.
- Windows: Fix Windows version display on Windows 11.
- Add macOS M1 CI checks.
- macOS M1: Add temperature support.
- macOS: Fix leak in disk retrieval.
- Windows: Fix
Process::exeinformation retrieval. - All supported platforms: Correctly handle a PID owner change (#809).
- Linux: Fix potential problem on
ProcessExt::exein case/proc/<pid>/execannot be read. - Add
SystemExt::sort_disks_by.
- Linux: CPU frequency is now retrieved on-demand as expected when
CpuRefreshKind::frequencyistrue. System::refresh_cpubehaviour changed: it only computes CPU usage and doesn't retrieve CPU frequency.
- Windows: Fix boot time computation.
- macOS: Fix available memory computation.
- Some documentation fixes.
- macOS: Don't compute CPU usage when elapsed time is 0.
- macOS: Fix memory leak when retrieving disks.
- C interface: Fix
charcast when platform is using unsignedchars.
- Implement
Hashtrait onUidandGidtypes. - Remove dependency
once_cellfor targets other thanlinux,androidandwindows.
- Windows: Fix
System::refresh_processwhen required higher priviledges.
- macOS: Fix
System::refresh_processesbadly handling updates. - FreeBSD: Improve performance of
System::refresh_processes.
- Windows: Fix CPU usage computation.
- Windows: Enable extra feature on
winapi. - macOS: Fix executable path retrieval.
- Use
saturating_*function for mathematical operations to prevent overflows/underflows.
- Rename
ProcessorintoCpuandProcessorExtintoCpuExt. - Retrieve information about a process' owner.
- Add
SystemExt::get_user_by_id. - Add
ProcessExt::user_id. - Add
ProcessExt::group_id. - Add
user-related methods toProcessRefreshKind. - Linux: Improve performance when creating new
Processby improving retrieval of user ID and group ID.
- Linux: Fix processes' virtual memory computation.
- macOS/FreeBSD: Fix
System::refresh_processandSystem::refresh_process_specificsreturned value. - Linux: Small performance improvement when updating process list.
- Linux: Improve
System::refresh_cpuperformance. - Fix clippy lints.
- Add FreeBSD to the "supported OS" list
- Remove useless benchmark results
- Improve documentation of
SystemExt::refresh_cpu.
- macOS: Fix disk retrieval
- Windows: Fix underflow for
Processrun_time computation
- macOS: Ignore non-root drive partitions
- Windows: Fix process name retrieval
- Windows: Unify internal process creation methods
- FreeBSD: Simplify code for process update
- Windows: Fix a bug which prevent all disks to be listed.
- Linux (raspberry): Fix physical core count.
- Impl
From<Pid>for Pid inner type. - Code cleanup.
- Fix unsafe "correctness".
- Correctly handle
MaybeUninit::assume_init.
- Implement
Intotrait onPid - Add
#[repr(transparent)]onPid - Clean up
refresh_processandrefresh_processes: onlyrefresh_processesremoves non-existing processes.
- Linux: Fix process uptime.
- Rename
process_by_nameintoprocesses_by_name. - Rename
process_by_name_exactintoprocesses_by_name_exact. - Change returned type of
process_by_nameand ofprocess_by_name_exactinto an iterator. - Improved
Signaldocumentation. - Turned
Pidtype alias into a newtype.
- Linux: Improve documentation on how processes queries are handled.
- FreeBSD: Fix type error for 32-bit (on i386, armv6, armv7, powerpc).
- Improve Pid type documentation.
- Add
SystemExt::process_by_exact_namemethod. - Add
SUPPORTED_SIGNALSconstant onSystemExt. - Fix common type aliases.
- Implement
DisplayforSignal.
- Windows: Correctly handle COM initialization/deinitialization.
- Linux: Fix panic when changing the limit of open files.
- FreeBSD: Take ZFS ARC value into account when computing used system memory.
- Add some missing
#[must_use].
- FreeBSD: Improve memory information retrieval.
- Remove forgotten debug.
- Add FreeBSD support.
- Create
SystemExt::refresh_processes_specificsandSystemExt::refresh_process_specificsmethods. - Update
ProcessExt::killAPI and addProcessExt::kill_with. - Add
ProcessExt::run_time.
- Unsupported targets: Fix build.
- Linux: Exclude rootfs disk type as well.
- Windows: Performance improvement by lazily creating queries.
- Linux: Process CPU usage cannot go above maximum value (number of CPUs * 100) anymore.
- Linux: Improve processors update.
- Linux: Improve processes CPU usage computation speed.
- Linux: Fix processes CPU computation (if
System::refresh_cpuwasn't used). - Fix build for unsupported targets.
- Make
ProcessStatusenum unique for all platforms. - Unify documentation over all platforms.
- Linux: Prevented overflow in disk size computation (bug in
davfs2). - Fixed clippy lints
- Update libc version, allowing to remove a lot of FFI bindings.
- Windows: Reworked process information retrieval
- Windows: Fixed issue on
c_voidsize. - Improved documentation of
ProcessExt::environ.
- Windows: Added support for getting process' current working directory
- Windows: Added support for getting process' environment variables
- Removed more FFI bindings and replaced them with libc's.
- macOS: Added better support for sandboxing.
- macOS: Added support for getting process current working directory.
- Added more explanations in crate level code example.
- Updated rayon version to 1.5.1.
- macOS: Improved code readability.
- Windows: Prevented the
taskkill.execonsole window from appearing when usingkill. - Fixed benchmarks compilation issue.
- Upgraded minimum supported Rust version to 1.54.
- Removed doc-comment dependency.
- Merged README and crate documentation.
- Windows: Fixed swap memory information computation.
- Windows: Got swap memory information.
- Linux: Fixed memory information gathering (bad parsing of
/proc/meminfo).
- Renamed functions/methods to follow Rust API guidelines on naming.
- Linux: Set processes' executable path from command line if not found.
- Linux: Added extra information about
ProcessExt::name(). - macOS: Removed unneeded (re)import of CoreFoundation library at compile-time.
- Reworked
DiskTypeenum: there is no moreRemovablevariant, it's now set into theDiskstruct.DiskExt::is_removablewas added. - Linux: Added support for removable disks.
- Linux: Ensured there's a value in
global_processorfrequency. - Fixed tests to make them a bit less strict (which was problematic when run on VMs).
- Linux: Fixed CPU usage subtraction overflow.
- macOS: Brand and vendor ID information were reversed.
- macOS: On Apple M1 processors, the vendor ID is empty, so instead we return "Apple".
- Added tests to ensure that the processors are always set after
System::new().
- Added
SystemExt::IS_SUPPORTEDconstant to allow to easily query if a system is supported or not. - Used
SystemExt::IS_SUPPORTEDto fix tests on non-supported platforms and simplify others.
- Improved documentation to make it more clear how to use the different information.
- Turned the
Signalenum into a full rust one by removing the#[repr(C)]attribute on it. Each platform now implements its own conversion. - Removed
Signal::Stklftwhich wasn't used on any supported system. - Linux: Added support for paravirtualized disks.
- Improved network code: network interfaces were handled a bit differently depending on the platform, it is now unified.
- Linux: fixed invalid network interface cleanup when an interface was removed from the system in
refresh_networks_list. - Added freebsd to CI runs.
- Added
cargo testcommand for freebsd on CI. - freebsd: Fixed build.
- Removed manual FFI bindings in both Apple and Windows targets.
- Fixed C-interface compilation.
- Added information on how to add new platform.
- Linux: fixed
System::refresh_processreturn value.
- Windows: fixed process CPU usage computation.
- Linux: improved CPU usage values on first query by returning 0: it now waits the second cycle before computing it to avoid abherent values.
- Linux: fixed process name retrieval by using
statinformation instead. - Apple: only list local users.
- Linux: fixed OS version retrieval by adding a fallback to
/etc/lsb-release. - iOS: fixed warnings.
- Renamed
ProcessStatus::to_stringmethod toas_str. - macOS: fixed CPU usage computation.
- Windows: Removed trailing NUL bytes in hostname.
- Added user ID and group ID.
- macOS: Removed trailing NUL bytes in various values returned by the
sysctlcalls.
- Updated minimum libc version to 0.2.86.
- Fixed network values computation: replaced the simple arithmetic with
saturating_subandsaturating_add. - Converted values read in
/proc/meminfofrom KiB to KB (because contrary to what is said in the manual, they are in KiB, not in KB). - macOS: Rewrote
get_disksfunction to remove the Objective-C dependency. - Added
SystemExt::get_long_os_version. - Linux: Fixed sequences for disks.
- Linux: Allowed
/run/mediaas a mount path. - Windows: Fixed disk size computation.
- Linux: Fixed virtual memory size computation.
- Added support for Android.
- Added flag to remove APIs prohibited in Apple store.
- Windows: show removeable drives on Windows.
- Switched to Rust 2018 edition.
- Split
SystemExt::get_versionintoSystemExt::get_kernel_versionandSystemExt::get_os_version. - Windows: added support for
get_kernel_versionandget_os_version. - Changed return type of
SystemExt::get_physical_core_countfromusizetoOption<usize>. - Added
SystemExt::get_physical_core_numbers.
- iOS: Fixed build.
- Fixed cross-compilation.
- Apple: fixed Objective-C library imports.
- Added
SystemExt::get_host_name.
- Upgraded
cfg-ifdependency version to1.0.
- Added
SystemExt::get_nameandSystemExt::get_version. - Added
multithreadfeature, making therayondependency optional.
- Apple: gig source code cleanup.
- Apple: improved disk handling.
- Removed manual FFI code and used libc's instead.
- Prevented CPU value to be NaN.
- macOS: fixed disk space computation.
- Improved documentation.
- Extended example.
- Added
SystemExt::get_available_memory.
- Linux: improved task source code.
- macOS: renamed "CPU" into "CPU Die".
- macOS: added "CPU proximity" information.
- Linux: improved process name retrieval.
- Linux: fixed infinite recursion when gathering disk information.
- Added iOS support.
- Simplified
DiskTypehandling by removingFromimplementation. - Linux: fixed SSD/HDD detection.
- Linux: fixed CPU usage computation.
- Windows: fixed load average constants.
- Linux: fixed network information retrieval by replacing
usizewithu64because it was too small on 32 bits systems. - Linux: get each core frequency.
- Raspberry Pi: fixed temperature retrieval.
- Linux: fixed infinite recursion when getting disk.
- Strengthened cfg checks: use "linux" and "android" instead of "unix".
- Linux: fixed memory usage computation.
- Linux: fixed memory usage computation.
- Windows: fixed CPU usage computation overflow.
- macOS: fixed CPU usage computation overflow.
- Windows: retrieved command line.
- Removed empty disks.
- Converted KiB to KB.
- Code improvements.
- Linux: fixed some issues on disks retrieval.
- Linux: fixed out-of-bound access in
boot_time. - Added benchmark on
Disk::refresh.