# 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.5"
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.42.0"
features = [
    "Win32_Foundation",
    "Win32_Networking_WinSock",
    "Win32_NetworkManagement_IpHelper",
    "Win32_System_Threading",
]

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