# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.74"
name = "sysinfo"
version = "0.31.4"
authors = ["Guillaume Gomez <guillaume1.gomez@gmail.com>"]
build = false
exclude = ["/test-unknown"]
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Library to get system information such as processes, CPUs, disks, components and networks"
readme = "README.md"
keywords = [
    "system-information",
    "disk",
    "process",
    "network",
    "cpu",
]
license = "MIT"
repository = "https://github.com/GuillaumeGomez/sysinfo"

[package.metadata.docs.rs]
cargo-args = ["-Zbuild-std"]
default-target = "x86_64-unknown-linux-gnu"
features = ["serde"]
rustdoc-args = ["--generate-link-to-definition"]
targets = [
    "i686-unknown-linux-gnu",
    "x86_64-apple-darwin",
    "x86_64-pc-windows-msvc",
    "i686-pc-windows-msvc",
    "x86_64-unknown-freebsd",
]

[lib]
name = "sysinfo"
path = "src/lib.rs"

[[example]]
name = "simple"
path = "examples/simple.rs"
required-features = ["default"]

[[test]]
name = "components"
path = "tests/components.rs"

[[test]]
name = "cpu"
path = "tests/cpu.rs"

[[test]]
name = "disk_list"
path = "tests/disk_list.rs"

[[test]]
name = "extras"
path = "tests/extras.rs"

[[test]]
name = "network"
path = "tests/network.rs"

[[test]]
name = "process"
path = "tests/process.rs"

[[test]]
name = "send_sync"
path = "tests/send_sync.rs"

[[test]]
name = "system"
path = "tests/system.rs"

[[bench]]
name = "basic"
path = "benches/basic.rs"

[dependencies.memchr]
version = "2.5"
optional = true

[dependencies.rayon]
version = "^1.8"
optional = true

[dependencies.serde]
version = "^1.0.190"
optional = true

[dev-dependencies.bstr]
version = "1.9.0"

[dev-dependencies.serde_json]
version = "1.0"

[features]
apple-app-store = ["apple-sandbox"]
apple-sandbox = []
c-interface = ["default"]
component = [
    "windows/Win32_Foundation",
    "windows/Win32_Security",
    "windows/Win32_System_Com",
    "windows/Win32_System_Rpc",
    "windows/Win32_System_Variant",
    "windows/Win32_System_Wmi",
]
debug = ["libc/extra_traits"]
default = [
    "component",
    "disk",
    "network",
    "system",
    "user",
    "multithread",
]
disk = [
    "windows/Win32_Foundation",
    "windows/Win32_Storage_FileSystem",
    "windows/Win32_Security",
    "windows/Win32_System_IO",
    "windows/Win32_System_Ioctl",
    "windows/Win32_System_WindowsProgramming",
]
linux-netdevs = []
linux-tmpfs = []
multithread = ["dep:rayon"]
network = [
    "windows/Win32_Foundation",
    "windows/Win32_NetworkManagement_IpHelper",
    "windows/Win32_NetworkManagement_Ndis",
    "windows/Win32_Networking_WinSock",
]
system = [
    "windows/Win32_Foundation",
    "windows/Wdk_System_SystemInformation",
    "windows/Wdk_System_SystemServices",
    "windows/Wdk_System_Threading",
    "windows/Win32_Security_Authorization",
    "windows/Win32_System_Diagnostics_Debug",
    "windows/Win32_System_Kernel",
    "windows/Win32_System_Memory",
    "windows/Win32_System_Performance",
    "windows/Win32_System_Power",
    "windows/Win32_System_ProcessStatus",
    "windows/Win32_System_Registry",
    "windows/Win32_System_RemoteDesktop",
    "windows/Win32_System_SystemInformation",
    "windows/Win32_System_SystemServices",
    "windows/Win32_System_Threading",
    "windows/Win32_UI_Shell",
    "dep:ntapi",
    "dep:memchr",
]
unknown-ci = []
user = [
    "windows/Win32_Foundation",
    "windows/Win32_NetworkManagement_NetManagement",
    "windows/Win32_Security",
    "windows/Win32_Security_Authentication_Identity",
    "windows/Win32_Security_Authorization",
]

[target.'cfg(all(target_os = "linux", not(target_os = "android")))'.dev-dependencies.tempfile]
version = "3.9"

[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.core-foundation-sys]
version = "0.8"

[target.'cfg(not(any(target_os = "unknown", target_arch = "wasm32")))'.dependencies.libc]
version = "^0.2.153"

[target."cfg(windows)".dependencies.ntapi]
version = "0.4"
optional = true

[target."cfg(windows)".dependencies.windows]
version = ">=0.54, <=0.57"
optional = true
