- Improve documentation of
SystemExt::refresh_cpu
.
- macOS: Fix disk retrieval
- Windows: Fix underflow for
Process
run_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
Into
trait onPid
- Add
#[repr(transparent)]
onPid
- Clean up
refresh_process
andrefresh_processes
: onlyrefresh_processes
removes non-existing processes.
- Linux: Fix process uptime.
- Rename
process_by_name
intoprocesses_by_name
. - Rename
process_by_name_exact
intoprocesses_by_name_exact
. - Change returned type of
process_by_name
and ofprocess_by_name_exact
into an iterator. - Improved
Signal
documentation. - Turned
Pid
type 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_name
method. - Add
SUPPORTED_SIGNALS
constant onSystemExt
. - Fix common type aliases.
- Implement
Display
forSignal
.
- 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_specifics
andSystemExt::refresh_process_specifics
methods. - Update
ProcessExt::kill
API 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_cpu
wasn't used). - Fix build for unsupported targets.
- Make
ProcessStatus
enum 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_void
size. - 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.exe
console 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
DiskType
enum: there is no moreRemovable
variant, it's now set into theDisk
struct.DiskExt::is_removable
was added. - Linux: Added support for removable disks.
- Linux: Ensured there's a value in
global_processor
frequency. - 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_SUPPORTED
constant to allow to easily query if a system is supported or not. - Used
SystemExt::IS_SUPPORTED
to fix tests on non-supported platforms and simplify others.
- Improved documentation to make it more clear how to use the different information.
- Turned the
Signal
enum into a full rust one by removing the#[repr(C)]
attribute on it. Each platform now implements its own conversion. - Removed
Signal::Stklft
which 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 test
command 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_process
return 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
stat
information 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_string
method 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
sysctl
calls.
- Updated minimum libc version to 0.2.86.
- Fixed network values computation: replaced the simple arithmetic with
saturating_sub
andsaturating_add
. - Converted values read in
/proc/meminfo
from KiB to KB (because contrary to what is said in the manual, they are in KiB, not in KB). - macOS: Rewrote
get_disks
function to remove the Objective-C dependency. - Added
SystemExt::get_long_os_version
. - Linux: Fixed sequences for disks.
- Linux: Allowed
/run/media
as 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_version
intoSystemExt::get_kernel_version
andSystemExt::get_os_version
. - Windows: added support for
get_kernel_version
andget_os_version
. - Changed return type of
SystemExt::get_physical_core_count
fromusize
toOption<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-if
dependency version to1.0
.
- Added
SystemExt::get_name
andSystemExt::get_version
. - Added
multithread
feature, making therayon
dependency 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
DiskType
handling by removingFrom
implementation. - Linux: fixed SSD/HDD detection.
- Linux: fixed CPU usage computation.
- Windows: fixed load average constants.
- Linux: fixed network information retrieval by replacing
usize
withu64
because 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
.