[package]
name = "opentelemetry"
version = "0.16.0"
authors = ["OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>"]
description = "A metrics collection and distributed tracing framework"
homepage = "https://github.com/open-telemetry/opentelemetry-rust"
repository = "https://github.com/open-telemetry/opentelemetry-rust"
readme = "README.md"
categories = [
    "development-tools::debugging",
    "development-tools::profiling",
    "api-bindings",
    "asynchronous",
]
keywords = ["opentelemetry", "logging", "tracing", "metrics", "async"]
license = "Apache-2.0"
edition = "2018"

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

[dependencies]
async-std = { version = "1.6", features = ["unstable"], optional = true }
async-trait = { version = "0.1", optional = true }
dashmap = { version = "4.0.1", optional = true }
fnv = { version = "1.0", optional = true }
futures-channel = "0.3"
futures-executor = "0.3"
futures-util = { version = "0.3", default-features = false, features = ["std", "sink"] }
lazy_static = "1.4"
percent-encoding = { version = "2.0", optional = true }
pin-project = { version = "1.0.2", optional = true }
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true }
serde = { version = "1.0", features = ["derive", "rc"], optional = true }
thiserror = "1"
tokio = { version = "1.0", default-features = false, features = ["rt", "time"], optional = true }
tokio-stream = { version = "0.1", optional = true }
crossbeam-channel = { version = "0.5", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3"

[dev-dependencies]
bincode = "1.2"
criterion = "0.3.1"
rand_distr = "0.4.0"

[features]
default = ["trace"]
trace = ["crossbeam-channel", "rand", "pin-project", "async-trait", "percent-encoding"]
metrics = ["dashmap", "fnv"]
serialize = ["serde"]
testing = ["trace", "metrics", "rt-async-std", "rt-tokio", "rt-tokio-current-thread", "tokio/macros", "tokio/rt-multi-thread"]
rt-tokio = ["tokio", "tokio-stream"]
rt-tokio-current-thread = ["tokio", "tokio-stream"]
rt-async-std = ["async-std"]

[[bench]]
name = "trace"
harness = false

[[bench]]
name = "batch_span_processor"
harness = false
required-features = ["rt-tokio"]

[[bench]]
name = "metric"
harness = false
required-features = ["metrics"]

[[bench]]
name = "ddsketch"
harness = false
required-features = ["metrics"]
