[package]
name = "thread_aware"
description = "Facilities to support thread-isolated state."
version = "0.7.4"
readme = "README.md"
keywords = ["oxidizer", "thread", "aware"]
categories = ["data-structures"]
edition = { workspace = true }
rust-version = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
homepage = { workspace = true }
repository = "https://github.com/microsoft/oxidizer/tree/main/crates/thread_aware"
[package.metadata.cargo_check_external_types]
allowed_external_types = [
"thread_aware_macros::ThreadAware",
"bytes::bytes::Bytes",
"bytes::bytes_mut::BytesMut",
"http::error::Error",
"http::header::map::HeaderMap",
"http::header::name::HeaderName",
"http::header::value::HeaderValue",
"http::method::Method",
"http::request::Request",
"http::response::Response",
"http::status::StatusCode",
"http::uri::Uri",
"http::uri::authority::Authority",
"http::uri::path::PathAndQuery",
"http::uri::port::Port",
"http::uri::scheme::Scheme",
"http::uri::InvalidUri",
"http::version::Version",
"jiff::civil::date::Date",
"jiff::civil::datetime::DateTime",
"jiff::civil::iso_week_date::ISOWeekDate",
"jiff::civil::time::Time",
"jiff::signed_duration::SignedDuration",
"jiff::span::Span",
"jiff::timestamp::Timestamp",
"uuid::Uuid",
]
[package.metadata.docs.rs]
all-features = true
[features]
default = ["derive"]
derive = ["dep:thread_aware_macros"]
threads = ["dep:many_cpus"]
bytes = ["dep:bytes"]
http = ["dep:http"]
jiff02 = ["dep:jiff"]
uuid = ["dep:uuid"]
[dependencies]
many_cpus = { workspace = true, optional = true }
thread_aware_macros = { workspace = true, optional = true }
bytes = { version = "1.11.1", default-features = false, optional = true }
http = { version = "1.4.1", default-features = false, features = ["std"], optional = true }
jiff = { version = "0.2.21", default-features = false, optional = true }
uuid = { version = "1.21.0", default-features = false, optional = true }
[dev-dependencies]
bytes = { version = "1.11.1", default-features = false }
criterion = { workspace = true }
futures = { workspace = true, features = ["executor"] }
http = { version = "1.4.1", default-features = false, features = ["std"] }
jiff = { version = "0.2.21", default-features = false }
many_cpus = { workspace = true, features = ["test-util"] }
mutants = { workspace = true }
static_assertions = { workspace = true }
thread_aware_macros = { path = "../thread_aware_macros" }
uuid = { version = "1.21.0", default-features = false }
[target.'cfg(target_os = "linux")'.dev-dependencies]
gungraun = { workspace = true, features = ["default"] }
[lints]
workspace = true
[[bench]]
name = "criterion_third_party"
harness = false
required-features = ["bytes", "http", "jiff02", "uuid"]
[[bench]]
name = "gungraun_third_party"
harness = false
required-features = ["bytes", "http", "jiff02", "uuid"]