25 KiB
25 KiB
0.34.2
- FreeBSD: Fix segfault when refreshing processes.
0.34.1
- macOS: Remove forgotten debug print.
0.34.0
multithreadfeature is disabled by default.- Add new
Processmethods:accumulated_cpu_time,exists,open_filesandopen_files_limit. Process::waitmethod now returnsOption<ExitStatus>.- Add new
Systemmethods:distribution_id_likeandkernel_long_version. - Turn
System::physical_core_countmethod into an associated function. - Make
System::refresh_allandSystem::refresh_specificsmethods remove dead processes. - Add new
ProcessRefreshKindrefresh:tasks. - Fix
Groupdocs. - Implement
Deserializetrait onDiskKind,MacAddr,IpNetwork,ProcessStatus,SignalandThreadKind. - Implement
FromStrtrait onIpNetworkandMacAddr. - Implement
Hashtrait onDiskKind,MacAddr,ProcessStatusandSignal. - macOS: Removed processes are now correctly handled when refreshing processes.
- macOS: Strenghten dist list refresh.
- macOS: Fix internal
cfghandling which triggered compilation failures in some specific cases. - Linux: max cgroups memory is more reliant in case of wrong input.
- Linux: Fix processes tasks update.
- Linux: Improve disks retrieval.
- Windows: Fix antivirus considering programs using
sysinfoas viruses by replacing uses ofNtQueryInformationProcesswith other "mainstream" Windows API. - Windows: Improve CPU usage computation efficiency.
- FreeBSD: Improve
process_procswhen there is only one process to refresh.
0.33.1
- Linux: Fix components retrieval.
- Linux: Filter out more virtual file systems for
DiskAPI. - Linux/Android: Improve
System::long_os_version(). - Apple: Add missing CPU brands for iPhone and iPads.
- macOS: Improve system name retrieval in
System::long_os_version(). - Linux/macOS: Avoid trailing whitespace and consecutive whitespace in
System::long_os_version(). - Windows: Fix
User::groups. - Improve documentation for
System::name,System::kernel_version,System::os_version,System::long_os_versionandSystem::distribution_id.
0.33.0
- Linux: Add more ARM vendor IDs.
- Linux: Improve CPU computation when refreshing a single process CPU usage.
- Windows: Fix CPU frequency not being refreshed.
- Windows: Improved components retrieval.
- Windows: Fix inconsistent
boot_timeinformation. - Windows: Fix
User::groups. - macOS: Fix network data information being limited to 32 bits.
- macOS: Add newer macOS version for
System::long_os_version. - unix: Add support for network sub-interfaces.
- Use
std::env::consts::ARCHas fallback forSystem::cpu_arch. - Add disk I/O support provided through
Disk::usage. - Add
NetworkData::mtu. - Add
DiskRefreshKindto have finer-grained disks refreshes. Component::temperatureandComponent::maxnow returnsOption<f32>.Users::refresh_list,Groups::refresh_list,Components::refresh_list,Networks::refresh_listandDisks::refresh_listmethods were renamedrefresh.*RefreshKind::newmethods were renamednothing.- Improve documentation for
DiskUsage::read_bytes. - Improve documentation for
Process::kill.
0.32.1
- Fix compilation error due to
libcupdate.
0.32.0
- Add new
Disk::is_read_onlyAPI. - Add new
remove_dead_processesargument toSystem::refresh_processesandSystem::refresh_processes_specifics. - macOS: Fix memory leak in disk refresh.
0.31.4
- macOS: Force memory cleanup in disk list retrieval.
0.31.3
- Raspberry Pi: Fix temperature retrieval.
0.31.2
- Remove
bstrdependency (needed for rustc development).
0.31.1
- Downgrade version of
memchr(needed for rustc development).
0.31.0
- Split crate in features to only enable what you need.
- Remove
System::refresh_process,System::refresh_process_specificsandSystem::refresh_pidsmethods. - Add new argument of type
ProcessesToUpdatetoSystem::refresh_processesandSystem::refresh_processes_specificsmethods. - Add new
NetworkData::ip_networksmethod. - Add new
System::refresh_cpu_listmethod. - Global CPU now only contains CPU usage.
- Rename
TermalSensorTypetoThermalSensorType. - Process names is now an
OsString. - Remove
System::global_cpu_info. - Add
System::global_cpu_usage. - macOS: Fix invalid CPU computation when single processes are refreshed one after the other.
- Windows: Fix virtual memory computation.
- Windows: Fix WoW64 parent process refresh.
- Linux: Retrieve RSS (Resident Set Size) memory for cgroups.
0.30.13
- macOS: Fix segfault when calling
Components::refresh_listmultiple times. - Windows: Fix CPU arch retrieval.
0.30.12
- FreeBSD: Fix network interfaces retrieval (one was always missing).
0.30.11
- macOS: Fix some invalid utf8 conversions.
0.30.10
- Linux: Fix components not being listed anymore.
0.30.9
- Linux/Windows: Performance improvements.
- Linux/macOS/FreeBSD: Parent process ID is updated if changed as expected.
0.30.8
- Linux: Fix missing parallelization.
- Linux: Add
cargofeature flaglinux-tmpfsto listtmpfsmounts. - macOS: Fix CPU usage returning
NaN. Components::refreshis now parallelized.
0.30.7
- Linux: Fix cgroup memory computation.
- FreeBSD: Fix documentation about disk usage.
0.30.6
- macOS: Fix missing update of process run time.
- Add new
GroupsAPI. - Improve documentation.
0.30.5
- Windows: Correctly retrieve processes name on 32 bits platforms.
- Windows: Fix swap memory computation.
0.30.4
- Windows: Fix misaligned read.
0.30.3
- Improve dependency stack by updating the
windowsdependency.
0.30.2
- Add
ThreadKindenum. - Add
Process::thread_kindmethod.
0.30.1
- Linux: Fix invalid memory information retrieval (virtual and resident set size were reversed).
0.30.0
- Split
Systeminto subtypes:Components,Disks,NetworksandUsers. brand,vendor_idandfrequencyinformation is not set anymore on the global CPU.- Unix: Fix endless loop in user groups retrieval.
- Unix/Windows: Fix infinite loop when retrieving various information because of bad usage
of
Vec::reserve. - Unix: Fix invalid usage of NULL pointer when retrieving user group name.
- Linux: Fix CPU name retrieval.
- Linux: Remove cgroup usage from memory computation.
- Linux: Add
linux-netdevsfeature to allow to retrieve network devices. - Linux: Improve system memory information retrieval (using
statmfile instead ofstat). - Linux: Tasks are listed in processes.
- macOS: Correctly retrieve process root directory.
- Windows: Add warning that
System::load_averageis not working in documentation. - Windows: Fix invalid use of NULL pointer when retrieving users groups.
- Windows: Correctly retrieve process root directory.
- Create new
System::cgroup_limitsmethod. - Remove
System::refresh_systemmethod. Disk::file_systemandDisk::namenow return anOption<&OsStr>.- Implement
Displaytrait onDiskKind. - Move from
winapitowindowscrate. - Add
System::cpu_arch. - Add
System::refresh_pidsandSystem::refresh_pids_specifics. System::boot_time,System::cpu_arch,System::distribution_id,System::host_name,System::kernel_version,System::load_average,System::long_os_version,System::name,System::os_versionandSystem::uptimeare static methods.ProcessRefreshKindhas a lot more of possibilities for better control over updates.- Add new
UpdateKindenum. - Add new
MemoryRefreshKindstruct. - Add new
System::refresh_memory_specificsmethod. Process::exe,Process::cwdandProcess::rootreturn anOption<&Path>.Process::tasksmethod is available on all platforms.Process::tasksmethod returns aHashSet<Pid>.- Move
System::IS_SUPPORTED,System::SUPPORTED_SIGNALSandSystem::MINIMUM_CPU_UPDATE_INTERVALconstants out ofSystemdirectly at the crate top-level. - Rename
IS_SUPPORTEDintoIS_SUPPORTED_SYSTEM. - Fix
serdeserialization. - Add
System::refresh_cpu_frequencyandSystem::refresh_cpu_all. - Fix
sysinfo.hand C wrapper. - Add a migration guide.
0.29.11
- macOS: Fix bug when a user group doesn't have a name.
0.29.10
- Linux: Correctly handle max memory value for cgroups.
0.29.9
- Linux: Fix memory usage retrieval for cgroups.
0.29.8
- Linux: Fix overflow bug.
0.29.7
- macOS: Fix CPU frequency retrieval for M1 and M2.
- Linux: Add support for cgroups v1/v2 for memory.
- Windows: Fix processes name encoding issues.
0.29.6
- Update minimum rust version to 1.63.
- Windows: Fix memory corruption when listing processes.
- Windows: Fix name inconsistency between
refresh_processesandrefresh_process. Cargo.lockis now included to prevent minimum rust version disruptions.
0.29.5
- Windows: Remove some undefined behaviour when listing processes.
- <docs.rs>: Use
--generate-link-to-definitionoption to have better source code pages.
0.29.4
- Windows: Improve code to retrieve network interfaces.
- Improve serde documentation example.
- Fix some clippy lints.
0.29.3
- Fix some documentation examples.
0.29.2
- <docs.rs>: Generate documentation for all supported platforms.
0.29.1
- Update
libcversion to 0.2.144. - Linux/FreeBSD/macOS: Fix retrieval of users groups in multi-threaded context.
0.29.0
- Add
ProcessExt::effective_user_idandProcessExt::effective_group_id. - Rename
DiskTypeintoDiskKind. - Rename
DiskExt::type_intoDiskExt::kind. - macOS: Correctly handle
ProcessStatusand remove publicThreadStatusfield. - Windows 11: Fix CPU core usage.
0.28.4
- macOS: Improve CPU computation.
- Strengthen a process test (needed for debian).
0.28.3
- FreeBSD/Windows: Add missing frequency for global CPU.
- macOS: Fix used memory computation.
- macOS: Improve available memory computation.
- Windows: Fix potential panic when getting process data.
0.28.2
- Linux: Improve CPU usage computation.
0.28.1
- macOS: Fix overflow when computing CPU usage.
0.28.0
- Linux: Fix name and CPU usage for processes tasks.
- unix: Keep all users, even "not real" accounts.
- Windows: Use SID for Users ID.
- Fix C API.
- Disable default cdylib compilation.
- Add
serdefeature to enable serialization. - Linux: Handle
Idlestate inProcessStatus. - Linux: Add brand and name of ARM CPUs.
0.27.8
- macOS: Fix overflow when computing CPU usage.
0.27.7
- macOS: Fix process CPU usage computation
- Linux: Improve ARM CPU
brandandnameinformation. - Windows: Fix resource leak.
- Documentation improvements.
0.27.6
- Make
MacAddrpublic.
0.27.5
- Linux: Improve compatibility with upcoming
libcchanges for musl targets.
0.27.4
- Create
SystemExt::MINIMUM_CPU_UPDATE_INTERVALconstant. - Fix consecutive processes updates CPU usage computation.
0.27.3
- macOS: Fix free/available memory computation.
- Fix processes_by_name* lifetimes
0.27.2
- Linux: Fix consecutive process CPU usage updates.
- Linux: Ignore NFS disks.
0.27.1
- Unix systems: Fix network address segfault issue.
0.27.0
- 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.
0.26.9
- (backport) Linux: Improve compatibility with upcoming
libcchanges for musl targets.
0.26.8
- Add
ProcessExt::session_idmethod. - Linux: Ignore NFS disks.
0.26.7
- Apple: Greatly improve disk retrieval (I recommend reading the pull request first comment for more information here: https://github.com/GuillaumeGomez/sysinfo/pull/855).
- Remove build script.
0.26.6
- Add
Process::wait. - Add "Good practice" entry into the crate level documentation and in the README.
- Linux: More precise used memory computation.
0.26.5
- Windows: Fix disk information retrieval.
- Linux: Improve
Processdocument. - Linux: Fix a compilation error if the
apple-sandboxfeature is enabled. - Internal code improvements.
0.26.4
- Add
SystemExt::distribution_idmethod. - Update
ntapiversion to0.4. - Update minimum supported Rust version (MSRV) to
1.59forntapi0.4.
0.26.3
- Update minimum supported Rust version (MSRV) to
1.56to followonce_cellminor update.
0.26.2
- Linux: Fix process information retrieval.
- Linux: Get more components temperature.
- Linux: Fix disk name retrieval (which in turn fixed disk type retrieval).
0.26.1
- macOS M1: Fix segmentation fault crash.
0.26.0
- Switch memory unit from kilobytes to bytes.
- Windows: Fix Windows version display on Windows 11.
0.25.3
- Add macOS M1 CI checks.
- macOS M1: Add temperature support.
- macOS: Fix leak in disk retrieval.
0.25.2
- Windows: Fix
Process::exeinformation retrieval. - All supported platforms: Correctly handle a PID owner change (#809).
0.25.1
- Linux: Fix potential problem on
ProcessExt::exein case/proc/<pid>/execannot be read. - Add
SystemExt::sort_disks_by.
0.25.0
- 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.
0.24.7
- Windows: Fix boot time computation.
- macOS: Fix available memory computation.
- Some documentation fixes.
0.24.6
- 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.
0.24.5
- Implement
Hashtrait onUidandGidtypes. - Remove dependency
once_cellfor targets other thanlinux,androidandwindows.
0.24.4
- Windows: Fix
System::refresh_processwhen required higher privileges.
0.24.3
- macOS: Fix
System::refresh_processesbadly handling updates. - FreeBSD: Improve performance of
System::refresh_processes.
0.24.2
- Windows: Fix CPU usage computation.
- Windows: Enable extra feature on
winapi. - macOS: Fix executable path retrieval.
0.24.1
- Use
saturating_*function for mathematical operations to prevent overflows/underflows.
0.24.0
- 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.
0.23.14
- Linux: Fix processes' virtual memory computation.
0.23.13
- macOS/FreeBSD: Fix
System::refresh_processandSystem::refresh_process_specificsreturned value. - Linux: Small performance improvement when updating process list.
0.23.12
- Linux: Improve
System::refresh_cpuperformance. - Fix clippy lints.
0.23.11
- Add FreeBSD to the "supported OS" list
- Remove useless benchmark results
0.23.10
- Improve documentation of
SystemExt::refresh_cpu.
0.23.9
- macOS: Fix disk retrieval
0.23.8
- Windows: Fix underflow for
Processrun_time computation
0.23.7
- macOS: Ignore non-root drive partitions
0.23.6
- Windows: Fix process name retrieval
- Windows: Unify internal process creation methods
- FreeBSD: Simplify code for process update
0.23.5
- Windows: Fix a bug which prevent all disks to be listed.
0.23.4
- Linux (raspberry): Fix physical core count.
0.23.3
- Impl
From<Pid>for Pid inner type. - Code cleanup.
0.23.2
- Fix unsafe "correctness".
- Correctly handle
MaybeUninit::assume_init.
0.23.1
- Implement
Intotrait onPid - Add
#[repr(transparent)]onPid - Clean up
refresh_processandrefresh_processes: onlyrefresh_processesremoves non-existing processes.
0.23.0
- 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.
0.22.5
- 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.
0.22.4
- Windows: Correctly handle COM initialization/deinitialization.
- Linux: Fix panic when changing the limit of open files.
0.22.3
- FreeBSD: Take ZFS ARC value into account when computing used system memory.
- Add some missing
#[must_use].
0.22.2
- FreeBSD: Improve memory information retrieval.
0.22.1
- Remove forgotten debug.
0.22.0
- Add FreeBSD support.
- Create
SystemExt::refresh_processes_specificsandSystemExt::refresh_process_specificsmethods. - Update
ProcessExt::killAPI and addProcessExt::kill_with. - Add
ProcessExt::run_time.
0.21.2
- Unsupported targets: Fix build.
- Linux: Exclude rootfs disk type as well.
- Windows: Performance improvement by lazily creating queries.
0.21.1
- 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.
0.21.0
- 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.
0.20.5
- Linux: Prevented overflow in disk size computation (bug in
davfs2). - Fixed clippy lints
0.20.4
- Update libc version, allowing to remove a lot of FFI bindings.
0.20.3
- Windows: Reworked process information retrieval
- Windows: Fixed issue on
c_voidsize. - Improved documentation of
ProcessExt::environ.
0.20.2
- 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.
0.20.1
- 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.
0.20.0
- 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.
0.19.2
- Windows: Fixed swap memory information computation.
0.19.1
- Windows: Got swap memory information.
- Linux: Fixed memory information gathering (bad parsing of
/proc/meminfo).
0.19.0
- 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.
0.18.2
- 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().
0.18.1
- 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.
0.18.0
- 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.
0.17.5
- Improved network code: network interfaces were handled a bit differently depending on the platform, it is now unified.
0.17.4
- 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.
0.17.3
- Removed manual FFI bindings in both Apple and Windows targets.
- Fixed C-interface compilation.
- Added information on how to add new platform.
0.17.2
- Linux: fixed
System::refresh_processreturn value.
0.17.1
- 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.
0.17.0
- 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.
0.16.5
- Windows: Removed trailing NUL bytes in hostname.
- Added user ID and group ID.
0.16.4
- macOS: Removed trailing NUL bytes in various values returned by the
sysctlcalls.
0.16.3
- Updated minimum libc version to 0.2.86.
0.16.2
- 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.
0.16.1
- Added support for Android.
- Added flag to remove APIs prohibited in Apple store.
0.16.0
- Windows: show removable 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.
0.15.9
- iOS: Fixed build.
- Fixed cross-compilation.
0.15.8
- Apple: fixed Objective-C library imports.
0.15.7
- Added
SystemExt::get_host_name.
0.15.6
- Upgraded
cfg-ifdependency version to1.0.
0.15.5
- Added
SystemExt::get_nameandSystemExt::get_version. - Added
multithreadfeature, making therayondependency optional.
0.15.4
- Apple: gig source code cleanup.
- Apple: improved disk handling.
- Removed manual FFI code and used libc's instead.
0.15.3
- Prevented CPU value to be NaN.
0.15.2
- macOS: fixed disk space computation.
0.15.1
- Improved documentation.
- Extended example.
0.15.0
- Added
SystemExt::get_available_memory.
0.14.15
- Linux: improved task source code.
0.14.14
- macOS: renamed "CPU" into "CPU Die".
- macOS: added "CPU proximity" information.
0.14.13
- Linux: improved process name retrieval.
0.14.12
- Linux: fixed infinite recursion when gathering disk information.
0.14.11
- Added iOS support.
0.14.10
- Simplified
DiskTypehandling by removingFromimplementation. - Linux: fixed SSD/HDD detection.
0.14.9
- Linux: fixed CPU usage computation.
- Windows: fixed load average constants.
0.14.8
- Linux: fixed network information retrieval by replacing
usizewithu64because it was too small on 32 bits systems. - Linux: get each core frequency.
0.14.7
- Raspberry Pi: fixed temperature retrieval.
0.14.6
- Linux: fixed infinite recursion when getting disk.
0.14.5
- Strengthened cfg checks: use "linux" and "android" instead of "unix".
0.14.4
- Linux: fixed memory usage computation.
0.14.3
- Linux: fixed memory usage computation.
0.14.2
- Windows: fixed CPU usage computation overflow.
- macOS: fixed CPU usage computation overflow.
- Windows: retrieved command line.
0.14.1
- Removed empty disks.
0.14.0
- Converted KiB to KB.
0.13.4
- Code improvements.
0.13.3
- Linux: fixed some issues on disks retrieval.
- Linux: fixed out-of-bound access in
boot_time. - Added benchmark on
Disk::refresh.