# 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"
name = "mio"
version = "0.8.6"
authors = [
    "Carl Lerche <me@carllerche.com>",
    "Thomas de Zeeuw <thomasdezeeuw@gmail.com>",
    "Tokio Contributors <team@tokio.rs>",
]
include = [
    "Cargo.toml",
    "LICENSE",
    "README.md",
    "CHANGELOG.md",
    "src/**/*.rs",
    "examples/**/*.rs",
]
description = "Lightweight non-blocking I/O."
homepage = "https://github.com/tokio-rs/mio"
readme = "README.md"
keywords = [
    "io",
    "async",
    "non-blocking",
]
categories = ["asynchronous"]
license = "MIT"
repository = "https://github.com/tokio-rs/mio"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]
targets = [
    "aarch64-apple-ios",
    "aarch64-linux-android",
    "wasm32-wasi",
    "x86_64-apple-darwin",
    "x86_64-pc-windows-msvc",
    "x86_64-unknown-dragonfly",
    "x86_64-unknown-freebsd",
    "x86_64-unknown-illumos",
    "x86_64-unknown-linux-gnu",
    "x86_64-unknown-netbsd",
    "x86_64-unknown-openbsd",
]

[package.metadata.playground]
features = [
    "os-poll",
    "os-ext",
    "net",
]

[[example]]
name = "tcp_server"
required-features = [
    "os-poll",
    "net",
]

[[example]]
name = "tcp_listenfd_server"
required-features = [
    "os-poll",
    "net",
]

[[example]]
name = "udp_server"
required-features = [
    "os-poll",
    "net",
]

[dependencies.log]
version = "0.4.8"

[dev-dependencies.env_logger]
version = "0.8.4"
default-features = false

[dev-dependencies.rand]
version = "0.8"

[features]
default = []
net = []
os-ext = [
    "os-poll",
    "windows-sys/Win32_System_Pipes",
    "windows-sys/Win32_Security",
]
os-poll = []

[target."cfg(target_os = \"wasi\")".dependencies.libc]
version = "0.2.121"

[target."cfg(target_os = \"wasi\")".dependencies.wasi]
version = "0.11.0"

[target."cfg(unix)".dependencies.libc]
version = "0.2.121"

[target."cfg(windows)".dependencies.windows-sys]
version = "0.45"
features = [
    "Win32_Foundation",
    "Win32_Networking_WinSock",
    "Win32_Storage_FileSystem",
    "Win32_System_IO",
    "Win32_System_WindowsProgramming",
]
