# 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.36.10"
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",
]

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

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

[dependencies.bitflags]
version = "1.2.1"

[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.0"
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.0"
features = ["close"]
default-features = false

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

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

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

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

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

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

[features]
all-apis = [
    "fs",
    "io_uring",
    "mm",
    "net",
    "param",
    "process",
    "procfs",
    "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",
]
mm = []
net = []
os_pipe = ["io-lifetimes/os_pipe"]
param = ["fs"]
process = []
procfs = [
    "once_cell",
    "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.1.2"
features = [
    "general",
    "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.133"
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.2.8"
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.1.2"
features = [
    "general",
    "errno",
    "ioctl",
    "no_std",
]
default-features = false

[target."cfg(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.133"
features = ["extra_traits"]

[target."cfg(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.2.8"
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.windows-sys]
version = "0.45.0"
features = [
    "Win32_Foundation",
    "Win32_Networking_WinSock",
    "Win32_NetworkManagement_IpHelper",
    "Win32_System_Threading",
]

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