[dependencies.bytes]
optional = true
version = "1.0.0"
[dependencies.mio]
default-features = false
optional = true
version = "1.0.1"
[dependencies.parking_lot]
optional = true
version = "0.12.0"
[dependencies.pin-project-lite]
version = "0.2.11"
[dependencies.tokio-macros]
optional = true
version = "~2.4.0"
[dev-dependencies.async-stream]
version = "0.3"
[dev-dependencies.futures]
features = ["async-await"]
version = "0.3.0"
[dev-dependencies.mockall]
version = "0.11.1"
[dev-dependencies.tokio-stream]
version = "0.1"
[dev-dependencies.tokio-test]
version = "0.4.0"
[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 = ["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 = ["rt"]
signal = ["libc", "mio/os-poll", "mio/net", "mio/os-ext", "signal-hook-registry", "windows-sys/Win32_Foundation", "windows-sys/Win32_System_Console"]
sync = []
test-util = ["rt", "sync", "time"]
time = []
[lib]
name = "tokio"
path = "src/lib.rs"
[package]
authors = ["Tokio Contributors <team@tokio.rs>"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["asynchronous", "network-programming"]
description = """
An event-driven, non-blocking I/O platform for writing asynchronous I/O
backed applications.
"""
edition = "2021"
homepage = "https://tokio.rs"
keywords = ["io", "async", "non-blocking", "futures"]
license = "MIT"
name = "tokio"
readme = "README.md"
repository = "https://github.com/tokio-rs/tokio"
rust-version = "1.70"
version = "1.41.0"
[package.metadata.cargo_check_external_types]
allowed_external_types = ["bytes::buf::buf_impl::Buf", "bytes::buf::buf_mut::BufMut", "tokio_macros::*"]
[package.metadata.docs.rs]
all-features = true
rustc-args = ["--cfg", "tokio_unstable", "--cfg", "tokio_taskdump"]
rustdoc-args = ["--cfg", "docsrs", "--cfg", "tokio_unstable", "--cfg", "tokio_taskdump"]
[package.metadata.playground]
features = ["full", "test-util"]
[target.'cfg(all(target_family = "wasm", not(target_os = "wasi")))'.dev-dependencies.wasm-bindgen-test]
version = "0.3.0"
[target."cfg(loom)".dev-dependencies.loom]
features = ["futures", "checkpoint"]
version = "0.7"
[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dev-dependencies.rand]
version = "0.8.0"
[target.'cfg(not(target_family = "wasm"))'.dependencies.socket2]
features = ["all"]
optional = true
version = "0.5.5"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.proptest]
version = "1"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.socket2]
version = "0.5.5"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.tempfile]
version = "3.1.0"
[target.'cfg(target_os = "freebsd")'.dev-dependencies.mio-aio]
features = ["tokio"]
version = "0.9.0"
[target."cfg(tokio_taskdump)".dependencies.backtrace]
version = "0.3.58"
[target."cfg(tokio_unstable)".dependencies.tracing]
default-features = false
features = ["std"]
optional = true
version = "0.1.29"
[target."cfg(unix)".dependencies.libc]
optional = true
version = "0.2.149"
[target."cfg(unix)".dependencies.signal-hook-registry]
optional = true
version = "1.1.1"
[target."cfg(unix)".dev-dependencies.libc]
version = "0.2.149"
[target."cfg(unix)".dev-dependencies.nix]
default-features = false
features = ["aio", "fs", "socket"]
version = "0.29.0"
[target."cfg(windows)".dependencies.windows-sys]
optional = true
version = "0.52"
[target."cfg(windows)".dev-dependencies.windows-sys]
features = ["Win32_Foundation", "Win32_Security_Authorization"]
version = "0.52"
[[test]]
name = "_require_full"
path = "tests/_require_full.rs"
[[test]]
name = "async_send_sync"
path = "tests/async_send_sync.rs"
[[test]]
name = "buffered"
path = "tests/buffered.rs"
[[test]]
name = "coop_budget"
path = "tests/coop_budget.rs"
[[test]]
name = "dump"
path = "tests/dump.rs"
[[test]]
name = "duplex_stream"
path = "tests/duplex_stream.rs"
[[test]]
name = "fs"
path = "tests/fs.rs"
[[test]]
name = "fs_canonicalize_dir"
path = "tests/fs_canonicalize_dir.rs"
[[test]]
name = "fs_copy"
path = "tests/fs_copy.rs"
[[test]]
name = "fs_dir"
path = "tests/fs_dir.rs"
[[test]]
name = "fs_file"
path = "tests/fs_file.rs"
[[test]]
name = "fs_link"
path = "tests/fs_link.rs"
[[test]]
name = "fs_open_options"
path = "tests/fs_open_options.rs"
[[test]]
name = "fs_open_options_windows"
path = "tests/fs_open_options_windows.rs"
[[test]]
name = "fs_remove_dir_all"
path = "tests/fs_remove_dir_all.rs"
[[test]]
name = "fs_remove_file"
path = "tests/fs_remove_file.rs"
[[test]]
name = "fs_rename"
path = "tests/fs_rename.rs"
[[test]]
name = "fs_symlink_dir_windows"
path = "tests/fs_symlink_dir_windows.rs"
[[test]]
name = "fs_symlink_file_windows"
path = "tests/fs_symlink_file_windows.rs"
[[test]]
name = "fs_try_exists"
path = "tests/fs_try_exists.rs"
[[test]]
name = "io_async_fd"
path = "tests/io_async_fd.rs"
[[test]]
name = "io_async_read"
path = "tests/io_async_read.rs"
[[test]]
name = "io_buf_reader"
path = "tests/io_buf_reader.rs"
[[test]]
name = "io_buf_writer"
path = "tests/io_buf_writer.rs"
[[test]]
name = "io_chain"
path = "tests/io_chain.rs"
[[test]]
name = "io_copy"
path = "tests/io_copy.rs"
[[test]]
name = "io_copy_bidirectional"
path = "tests/io_copy_bidirectional.rs"
[[test]]
name = "io_driver"
path = "tests/io_driver.rs"
[[test]]
name = "io_driver_drop"
path = "tests/io_driver_drop.rs"
[[test]]
name = "io_fill_buf"
path = "tests/io_fill_buf.rs"
[[test]]
name = "io_join"
path = "tests/io_join.rs"
[[test]]
name = "io_lines"
path = "tests/io_lines.rs"
[[test]]
name = "io_mem_stream"
path = "tests/io_mem_stream.rs"
[[test]]
name = "io_panic"
path = "tests/io_panic.rs"
[[test]]
name = "io_poll_aio"
path = "tests/io_poll_aio.rs"
[[test]]
name = "io_read"
path = "tests/io_read.rs"
[[test]]
name = "io_read_buf"
path = "tests/io_read_buf.rs"
[[test]]
name = "io_read_exact"
path = "tests/io_read_exact.rs"
[[test]]
name = "io_read_line"
path = "tests/io_read_line.rs"
[[test]]
name = "io_read_to_end"
path = "tests/io_read_to_end.rs"
[[test]]
name = "io_read_to_string"
path = "tests/io_read_to_string.rs"
[[test]]
name = "io_read_until"
path = "tests/io_read_until.rs"
[[test]]
name = "io_repeat"
path = "tests/io_repeat.rs"
[[test]]
name = "io_sink"
path = "tests/io_sink.rs"
[[test]]
name = "io_split"
path = "tests/io_split.rs"
[[test]]
name = "io_take"
path = "tests/io_take.rs"
[[test]]
name = "io_util_empty"
path = "tests/io_util_empty.rs"
[[test]]
name = "io_write"
path = "tests/io_write.rs"
[[test]]
name = "io_write_all"
path = "tests/io_write_all.rs"
[[test]]
name = "io_write_all_buf"
path = "tests/io_write_all_buf.rs"
[[test]]
name = "io_write_buf"
path = "tests/io_write_buf.rs"
[[test]]
name = "io_write_int"
path = "tests/io_write_int.rs"
[[test]]
name = "join_handle_panic"
path = "tests/join_handle_panic.rs"
[[test]]
name = "macros_join"
path = "tests/macros_join.rs"
[[test]]
name = "macros_pin"
path = "tests/macros_pin.rs"
[[test]]
name = "macros_rename_test"
path = "tests/macros_rename_test.rs"
[[test]]
name = "macros_select"
path = "tests/macros_select.rs"
[[test]]
name = "macros_test"
path = "tests/macros_test.rs"
[[test]]
name = "macros_try_join"
path = "tests/macros_try_join.rs"
[[test]]
name = "net_bind_resource"
path = "tests/net_bind_resource.rs"
[[test]]
name = "net_lookup_host"
path = "tests/net_lookup_host.rs"
[[test]]
name = "net_named_pipe"
path = "tests/net_named_pipe.rs"
[[test]]
name = "net_panic"
path = "tests/net_panic.rs"
[[test]]
name = "net_unix_pipe"
path = "tests/net_unix_pipe.rs"
[[test]]
name = "no_rt"
path = "tests/no_rt.rs"
[[test]]
name = "process_arg0"
path = "tests/process_arg0.rs"
[[test]]
name = "process_change_of_runtime"
path = "tests/process_change_of_runtime.rs"
[[test]]
name = "process_issue_2174"
path = "tests/process_issue_2174.rs"
[[test]]
name = "process_issue_42"
path = "tests/process_issue_42.rs"
[[test]]
name = "process_kill_on_drop"
path = "tests/process_kill_on_drop.rs"
[[test]]
name = "process_raw_handle"
path = "tests/process_raw_handle.rs"
[[test]]
name = "process_smoke"
path = "tests/process_smoke.rs"
[[test]]
name = "rt_basic"
path = "tests/rt_basic.rs"
[[test]]
name = "rt_common"
path = "tests/rt_common.rs"
[[test]]
name = "rt_handle"
path = "tests/rt_handle.rs"
[[test]]
name = "rt_handle_block_on"
path = "tests/rt_handle_block_on.rs"
[[test]]
name = "rt_local"
path = "tests/rt_local.rs"
[[test]]
name = "rt_metrics"
path = "tests/rt_metrics.rs"
[[test]]
name = "rt_panic"
path = "tests/rt_panic.rs"
[[test]]
name = "rt_threaded"
path = "tests/rt_threaded.rs"
[[test]]
name = "rt_threaded_alt"
path = "tests/rt_threaded_alt.rs"
[[test]]
name = "rt_time_start_paused"
path = "tests/rt_time_start_paused.rs"
[[test]]
name = "rt_unstable_metrics"
path = "tests/rt_unstable_metrics.rs"
[[test]]
name = "signal_ctrl_c"
path = "tests/signal_ctrl_c.rs"
[[test]]
name = "signal_drop_recv"
path = "tests/signal_drop_recv.rs"
[[test]]
name = "signal_drop_rt"
path = "tests/signal_drop_rt.rs"
[[test]]
name = "signal_drop_signal"
path = "tests/signal_drop_signal.rs"
[[test]]
name = "signal_multi_rt"
path = "tests/signal_multi_rt.rs"
[[test]]
name = "signal_no_rt"
path = "tests/signal_no_rt.rs"
[[test]]
name = "signal_notify_both"
path = "tests/signal_notify_both.rs"
[[test]]
name = "signal_panic"
path = "tests/signal_panic.rs"
[[test]]
name = "signal_twice"
path = "tests/signal_twice.rs"
[[test]]
name = "signal_usr1"
path = "tests/signal_usr1.rs"
[[test]]
name = "sync_barrier"
path = "tests/sync_barrier.rs"
[[test]]
name = "sync_broadcast"
path = "tests/sync_broadcast.rs"
[[test]]
name = "sync_errors"
path = "tests/sync_errors.rs"
[[test]]
name = "sync_mpsc"
path = "tests/sync_mpsc.rs"
[[test]]
name = "sync_mpsc_weak"
path = "tests/sync_mpsc_weak.rs"
[[test]]
name = "sync_mutex"
path = "tests/sync_mutex.rs"
[[test]]
name = "sync_mutex_owned"
path = "tests/sync_mutex_owned.rs"
[[test]]
name = "sync_notify"
path = "tests/sync_notify.rs"
[[test]]
name = "sync_once_cell"
path = "tests/sync_once_cell.rs"
[[test]]
name = "sync_oneshot"
path = "tests/sync_oneshot.rs"
[[test]]
name = "sync_panic"
path = "tests/sync_panic.rs"
[[test]]
name = "sync_rwlock"
path = "tests/sync_rwlock.rs"
[[test]]
name = "sync_semaphore"
path = "tests/sync_semaphore.rs"
[[test]]
name = "sync_semaphore_owned"
path = "tests/sync_semaphore_owned.rs"
[[test]]
name = "sync_watch"
path = "tests/sync_watch.rs"
[[test]]
name = "task_abort"
path = "tests/task_abort.rs"
[[test]]
name = "task_blocking"
path = "tests/task_blocking.rs"
[[test]]
name = "task_builder"
path = "tests/task_builder.rs"
[[test]]
name = "task_hooks"
path = "tests/task_hooks.rs"
[[test]]
name = "task_id"
path = "tests/task_id.rs"
[[test]]
name = "task_join_set"
path = "tests/task_join_set.rs"
[[test]]
name = "task_local"
path = "tests/task_local.rs"
[[test]]
name = "task_local_set"
path = "tests/task_local_set.rs"
[[test]]
name = "task_panic"
path = "tests/task_panic.rs"
[[test]]
name = "task_yield_now"
path = "tests/task_yield_now.rs"
[[test]]
name = "tcp_accept"
path = "tests/tcp_accept.rs"
[[test]]
name = "tcp_connect"
path = "tests/tcp_connect.rs"
[[test]]
name = "tcp_echo"
path = "tests/tcp_echo.rs"
[[test]]
name = "tcp_into_split"
path = "tests/tcp_into_split.rs"
[[test]]
name = "tcp_into_std"
path = "tests/tcp_into_std.rs"
[[test]]
name = "tcp_peek"
path = "tests/tcp_peek.rs"
[[test]]
name = "tcp_shutdown"
path = "tests/tcp_shutdown.rs"
[[test]]
name = "tcp_socket"
path = "tests/tcp_socket.rs"
[[test]]
name = "tcp_split"
path = "tests/tcp_split.rs"
[[test]]
name = "tcp_stream"
path = "tests/tcp_stream.rs"
[[test]]
name = "test_clock"
path = "tests/test_clock.rs"
[[test]]
name = "time_interval"
path = "tests/time_interval.rs"
[[test]]
name = "time_panic"
path = "tests/time_panic.rs"
[[test]]
name = "time_pause"
path = "tests/time_pause.rs"
[[test]]
name = "time_rt"
path = "tests/time_rt.rs"
[[test]]
name = "time_sleep"
path = "tests/time_sleep.rs"
[[test]]
name = "time_timeout"
path = "tests/time_timeout.rs"
[[test]]
name = "udp"
path = "tests/udp.rs"
[[test]]
name = "uds_cred"
path = "tests/uds_cred.rs"
[[test]]
name = "uds_datagram"
path = "tests/uds_datagram.rs"
[[test]]
name = "uds_socket"
path = "tests/uds_socket.rs"
[[test]]
name = "uds_split"
path = "tests/uds_split.rs"
[[test]]
name = "uds_stream"
path = "tests/uds_stream.rs"
[[test]]
name = "unwindsafe"
path = "tests/unwindsafe.rs"