# 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.49"
name = "tokio"
version = "1.26.0"
authors = ["Tokio Contributors <team@tokio.rs>"]
description = """
An event-driven, non-blocking I/O platform for writing asynchronous I/O
backed applications.
"""
homepage = "https://tokio.rs"
readme = "README.md"
keywords = [
    "io",
    "async",
    "non-blocking",
    "futures",
]
categories = [
    "asynchronous",
    "network-programming",
]
license = "MIT"
repository = "https://github.com/tokio-rs/tokio"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
    "--cfg",
    "tokio_unstable",
]
rustc-args = [
    "--cfg",
    "tokio_unstable",
]

[package.metadata.playground]
features = [
    "full",
    "test-util",
]

[dependencies.bytes]
version = "1.0.0"
optional = true

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

[dependencies.mio]
version = "0.8.4"
optional = true

[dependencies.num_cpus]
version = "1.8.0"
optional = true

[dependencies.parking_lot]
version = "0.12.0"
optional = true

[dependencies.pin-project-lite]
version = "0.2.0"

[dependencies.tokio-macros]
version = "1.7.0"
optional = true

[dev-dependencies.async-stream]
version = "0.3"

[dev-dependencies.futures]
version = "0.3.0"
features = ["async-await"]

[dev-dependencies.mockall]
version = "0.11.1"

[dev-dependencies.tokio-stream]
version = "0.1"

[dev-dependencies.tokio-test]
version = "0.4.0"

[build-dependencies.autocfg]
version = "1.1"

[features]
default = []
fs = []
full = [
    "fs",
    "io-util",
    "io-std",
    "macros",
    "net",
    "parking_lot",
    "process",
    "rt",
    "rt-multi-thread",
    "signal",
    "sync",
    "time",
]
io-std = []
io-util = [
    "memchr",
    "bytes",
]
macros = ["tokio-macros"]
net = [
    "libc",
    "mio/os-poll",
    "mio/os-ext",
    "mio/net",
    "socket2",
    "windows-sys/Win32_Foundation",
    "windows-sys/Win32_Security",
    "windows-sys/Win32_Storage_FileSystem",
    "windows-sys/Win32_System_Pipes",
    "windows-sys/Win32_System_SystemServices",
]
process = [
    "bytes",
    "libc",
    "mio/os-poll",
    "mio/os-ext",
    "mio/net",
    "signal-hook-registry",
    "windows-sys/Win32_Foundation",
    "windows-sys/Win32_System_Threading",
    "windows-sys/Win32_System_WindowsProgramming",
]
rt = []
rt-multi-thread = [
    "num_cpus",
    "rt",
]
signal = [
    "libc",
    "mio/os-poll",
    "mio/net",
    "mio/os-ext",
    "signal-hook-registry",
    "windows-sys/Win32_Foundation",
    "windows-sys/Win32_System_Console",
]
stats = []
sync = []
test-util = [
    "rt",
    "sync",
    "time",
]
time = []

[target."cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), not(target_os = \"wasi\")))".dev-dependencies.wasm-bindgen-test]
version = "0.3.0"

[target."cfg(docsrs)".dependencies.windows-sys]
version = "0.45"
features = [
    "Win32_Foundation",
    "Win32_Security_Authorization",
]

[target."cfg(loom)".dev-dependencies.loom]
version = "0.5.2"
features = [
    "futures",
    "checkpoint",
]

[target."cfg(not(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\")))".dev-dependencies.rand]
version = "0.8.0"

[target."cfg(not(any(target_arch = \"wasm32\", target_arch = \"wasm64\")))".dependencies.socket2]
version = "0.4.4"
features = ["all"]
optional = true

[target."cfg(not(any(target_arch = \"wasm32\", target_arch = \"wasm64\")))".dev-dependencies.socket2]
version = "0.4"

[target."cfg(not(any(target_arch = \"wasm32\", target_arch = \"wasm64\")))".dev-dependencies.tempfile]
version = "3.1.0"

[target."cfg(target_os = \"freebsd\")".dev-dependencies.mio-aio]
version = "0.7.0"
features = ["tokio"]

[target."cfg(tokio_unstable)".dependencies.tracing]
version = "0.1.25"
features = ["std"]
optional = true
default-features = false

[target."cfg(unix)".dependencies.libc]
version = "0.2.42"
optional = true

[target."cfg(unix)".dependencies.signal-hook-registry]
version = "1.1.1"
optional = true

[target."cfg(unix)".dev-dependencies.libc]
version = "0.2.42"

[target."cfg(unix)".dev-dependencies.nix]
version = "0.26"
features = [
    "fs",
    "socket",
]
default-features = false

[target."cfg(windows)".dependencies.windows-sys]
version = "0.45"
optional = true

[target."cfg(windows)".dev-dependencies.ntapi]
version = "0.3.6"
