[dependencies.futures-channel]
default-features = false
features = ["sink"]
version = "0.3.31"
[dependencies.futures-core]
default-features = false
version = "0.3.31"
[dependencies.futures-executor]
default-features = false
optional = true
version = "0.3.31"
[dependencies.futures-io]
default-features = false
version = "0.3.31"
[dependencies.futures-sink]
default-features = false
version = "0.3.31"
[dependencies.futures-task]
default-features = false
version = "0.3.31"
[dependencies.futures-util]
default-features = false
features = ["sink"]
version = "0.3.31"
[dev-dependencies.assert_matches]
version = "1.3.0"
[dev-dependencies.pin-project]
version = "1.0.11"
[dev-dependencies.static_assertions]
version = "1"
[dev-dependencies.tokio]
version = "0.1.11"
[features]
alloc = ["futures-core/alloc", "futures-task/alloc", "futures-sink/alloc", "futures-channel/alloc", "futures-util/alloc"]
async-await = ["futures-util/async-await", "futures-util/async-await-macro"]
bilock = ["futures-util/bilock"]
cfg-target-has-atomic = []
compat = ["std", "futures-util/compat"]
default = ["std", "async-await", "executor"]
executor = ["std", "futures-executor/std"]
io-compat = ["compat", "futures-util/io-compat"]
std = ["alloc", "futures-core/std", "futures-task/std", "futures-io/std", "futures-sink/std", "futures-util/std", "futures-util/io", "futures-util/channel"]
thread-pool = ["executor", "futures-executor/thread-pool"]
unstable = ["futures-core/unstable", "futures-task/unstable", "futures-channel/unstable", "futures-io/unstable", "futures-util/unstable"]
write-all-vectored = ["futures-util/write-all-vectored"]
[lib]
name = "futures"
path = "src/lib.rs"
[lints.rust]
missing_debug_implementations = "warn"
rust_2018_idioms = "warn"
single_use_lifetimes = "warn"
unreachable_pub = "warn"
[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(futures_sanitizer)"]
level = "warn"
priority = 0
[package]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["asynchronous"]
description = """
An implementation of futures and streams featuring zero allocations,
composability, and iterator-like interfaces.
"""
edition = "2018"
homepage = "https://rust-lang.github.io/futures-rs"
keywords = ["futures", "async", "future"]
license = "MIT OR Apache-2.0"
name = "futures"
readme = "README.md"
repository = "https://github.com/rust-lang/futures-rs"
rust-version = "1.56"
version = "0.3.31"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[package.metadata.playground]
features = ["std", "async-await", "compat", "io-compat", "executor", "thread-pool"]
[[test]]
name = "_require_features"
path = "tests/_require_features.rs"
[[test]]
name = "async_await_macros"
path = "tests/async_await_macros.rs"
[[test]]
name = "auto_traits"
path = "tests/auto_traits.rs"
[[test]]
name = "bilock"
path = "tests/bilock.rs"
[[test]]
name = "compat"
path = "tests/compat.rs"
[[test]]
name = "eager_drop"
path = "tests/eager_drop.rs"
[[test]]
name = "eventual"
path = "tests/eventual.rs"
[[test]]
name = "future_abortable"
path = "tests/future_abortable.rs"
[[test]]
name = "future_basic_combinators"
path = "tests/future_basic_combinators.rs"
[[test]]
name = "future_fuse"
path = "tests/future_fuse.rs"
[[test]]
name = "future_inspect"
path = "tests/future_inspect.rs"
[[test]]
name = "future_join"
path = "tests/future_join.rs"
[[test]]
name = "future_join_all"
path = "tests/future_join_all.rs"
[[test]]
name = "future_obj"
path = "tests/future_obj.rs"
[[test]]
name = "future_select_all"
path = "tests/future_select_all.rs"
[[test]]
name = "future_select_ok"
path = "tests/future_select_ok.rs"
[[test]]
name = "future_shared"
path = "tests/future_shared.rs"
[[test]]
name = "future_try_flatten_stream"
path = "tests/future_try_flatten_stream.rs"
[[test]]
name = "future_try_join_all"
path = "tests/future_try_join_all.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_cursor"
path = "tests/io_cursor.rs"
[[test]]
name = "io_line_writer"
path = "tests/io_line_writer.rs"
[[test]]
name = "io_lines"
path = "tests/io_lines.rs"
[[test]]
name = "io_read"
path = "tests/io_read.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_window"
path = "tests/io_window.rs"
[[test]]
name = "io_write"
path = "tests/io_write.rs"
[[test]]
name = "lock_mutex"
path = "tests/lock_mutex.rs"
[[test]]
name = "macro_comma_support"
path = "tests/macro_comma_support.rs"
[[test]]
name = "object_safety"
path = "tests/object_safety.rs"
[[test]]
name = "oneshot"
path = "tests/oneshot.rs"
[[test]]
name = "ready_queue"
path = "tests/ready_queue.rs"
[[test]]
name = "recurse"
path = "tests/recurse.rs"
[[test]]
name = "sink"
path = "tests/sink.rs"
[[test]]
name = "sink_fanout"
path = "tests/sink_fanout.rs"
[[test]]
name = "stream"
path = "tests/stream.rs"
[[test]]
name = "stream_abortable"
path = "tests/stream_abortable.rs"
[[test]]
name = "stream_buffer_unordered"
path = "tests/stream_buffer_unordered.rs"
[[test]]
name = "stream_catch_unwind"
path = "tests/stream_catch_unwind.rs"
[[test]]
name = "stream_futures_ordered"
path = "tests/stream_futures_ordered.rs"
[[test]]
name = "stream_futures_unordered"
path = "tests/stream_futures_unordered.rs"
[[test]]
name = "stream_into_async_read"
path = "tests/stream_into_async_read.rs"
[[test]]
name = "stream_peekable"
path = "tests/stream_peekable.rs"
[[test]]
name = "stream_select_all"
path = "tests/stream_select_all.rs"
[[test]]
name = "stream_select_next_some"
path = "tests/stream_select_next_some.rs"
[[test]]
name = "stream_split"
path = "tests/stream_split.rs"
[[test]]
name = "stream_try_stream"
path = "tests/stream_try_stream.rs"
[[test]]
name = "stream_unfold"
path = "tests/stream_unfold.rs"
[[test]]
name = "task_arc_wake"
path = "tests/task_arc_wake.rs"
[[test]]
name = "task_atomic_waker"
path = "tests/task_atomic_waker.rs"
[[test]]
name = "test_macro"
path = "tests/test_macro.rs"
[[test]]
name = "try_join"
path = "tests/try_join.rs"