# 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 = "2018"
rust-version = "1.48"
name = "rustix"
version = "0.37.20"
authors = [
    "Dan Gohman <dev@sunfishcode.online>",
    "Jakub Konka <kubkon@jakubkonka.com>",
]
include = [
    "src",
    "build.rs",
    "Cargo.toml",
    "COPYRIGHT",
    "LICENSE*",
    "/*.md",
    "benches",
]
description = "Safe Rust bindings to POSIX/Unix/Linux/Winsock2-like syscalls"
documentation = "https://docs.rs/rustix"
readme = "README.md"
keywords = [
    "api",
    "file",
    "network",
    "safe",
    "syscall",
]
categories = [
    "os::unix-apis",
    "date-and-time",
    "filesystem",
    "network-programming",
]
license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
repository = "https://github.com/bytecodealliance/rustix"

[package.metadata.docs.rs]
features = ["all-apis"]
rustdoc-args = [
    "--cfg",
    "doc_cfg",
]
targets = [
    "x86_64-unknown-linux-gnu",
    "i686-unknown-linux-gnu",
    "x86_64-apple-darwin",
    "x86_64-pc-windows-msvc",
    "x86_64-unknown-freebsd",
    "x86_64-unknown-openbsd",
    "x86_64-unknown-netbsd",
    "x86_64-unknown-dragonfly",
    "x86_64-unknown-illumos",
    "x86_64-unknown-redox",
    "x86_64-unknown-haiku",
    "wasm32-unknown-emscripten",
    "wasm32-wasi",
]

[[bench]]
name = "mod"
harness = false

[dependencies.alloc]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-alloc"

[dependencies.bitflags]
version = "1.3.2"

[dependencies.compiler_builtins]
version = "0.1.49"
optional = true

[dependencies.core]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-core"

[dependencies.io-lifetimes]
version = "1.0.10"
features = ["close"]
optional = true
default-features = false

[dependencies.itoa]
version = "1.0.1"
optional = true
default-features = false

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

[dev-dependencies.io-lifetimes]
version = "1.0.10"
features = ["close"]
default-features = false

[dev-dependencies.libc]
version = "0.2.144"

[dev-dependencies.libc_errno]
version = "0.3.1"
default-features = false
package = "errno"

[dev-dependencies.memoffset]
version = "0.9.0"

[dev-dependencies.serial_test]
version = "0.6"

[dev-dependencies.tempfile]
version = "3.4.0"

[build-dependencies.cc]
version = "1.0.68"
optional = true

[features]
all-apis = [
    "fs",
    "io_uring",
    "mm",
    "net",
    "param",
    "process",
    "procfs",
    "pty",
    "rand",
    "runtime",
    "termios",
    "thread",
    "time",
]
all-impls = [
    "os_pipe",
    "fs-err",
]
default = [
    "std",
    "use-libc-auxv",
]
fs = []
fs-err = ["io-lifetimes/fs-err"]
io_uring = [
    "fs",
    "net",
]
linux_4_11 = []
linux_latest = ["linux_4_11"]
mm = []
net = []
os_pipe = ["io-lifetimes/os_pipe"]
param = ["fs"]
process = []
procfs = [
    "once_cell",
    "itoa",
    "fs",
]
pty = [
    "itoa",
    "fs",
]
rand = []
runtime = []
rustc-dep-of-std = [
    "core",
    "alloc",
    "compiler_builtins",
    "linux-raw-sys/rustc-dep-of-std",
    "bitflags/rustc-dep-of-std",
]
std = ["io-lifetimes"]
termios = []
thread = []
time = []
use-libc = [
    "libc_errno",
    "libc",
]
use-libc-auxv = ["libc"]

[target."cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))".dependencies.linux-raw-sys]
version = "0.3.6"
features = [
    "general",
    "ioctl",
    "no_std",
]
default-features = false

[target."cfg(all(criterion, not(any(target_os = \"emscripten\", target_os = \"wasi\"))))".dev-dependencies.criterion]
version = "0.4"

[target."cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.libc]
version = "0.2.144"
features = ["extra_traits"]
optional = true

[target."cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.libc_errno]
version = "0.3.1"
optional = true
default-features = false
package = "errno"

[target."cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.linux-raw-sys]
version = "0.3.6"
features = [
    "general",
    "errno",
    "ioctl",
    "no_std",
]
default-features = false

[target."cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))".dependencies.libc]
version = "0.2.144"
features = ["extra_traits"]

[target."cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))".dependencies.libc_errno]
version = "0.3.1"
default-features = false
package = "errno"

[target."cfg(any(target_os = \"android\", target_os = \"linux\"))".dependencies.once_cell]
version = "1.5.2"
optional = true

[target."cfg(windows)".dependencies.libc_errno]
version = "0.3.1"
default-features = false
package = "errno"

[target."cfg(windows)".dependencies.windows-sys]
version = "0.48.0"
features = [
    "Win32_Foundation",
    "Win32_Networking_WinSock",
    "Win32_NetworkManagement_IpHelper",
    "Win32_System_Threading",
]

[target."cfg(windows)".dev-dependencies.ctor]
version = "0.2.0"
