[package]
name = "fast-telemetry"
version = "0.1.1"
edition = "2024"
authors.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "High-performance, cache-friendly telemetry primitives and export formats for Rust"
documentation = "https://docs.rs/fast-telemetry"
keywords = ["telemetry", "metrics", "tracing", "otlp", "performance"]
readme = "README.md"

[package.metadata.docs.rs]
all-features = true

[features]
default = ["macros"]
macros = ["dep:fast-telemetry-macros"]
otlp = ["dep:opentelemetry-proto", "dep:prost"]
shuttle-tests = ["dep:shuttle"]
bench-tools = ["dep:libc", "dep:metrics", "dep:metrics-util", "dep:opentelemetry", "dep:opentelemetry_sdk"]
eviction = []

[dependencies]
crossbeam-utils = { workspace = true }
fast-telemetry-macros = { workspace = true, optional = true }
libc = { version = "0.2", optional = true }
metrics = { workspace = true, optional = true }
metrics-util = { workspace = true, optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry-proto = { version = "0.30", default-features = false, features = ["gen-tonic", "gen-tonic-messages", "metrics", "trace"], optional = true }
opentelemetry_sdk = { workspace = true, optional = true, features = ["testing"] }
parking_lot = { workspace = true }
prost = { version = "0.13", optional = true }
shuttle = { workspace = true, optional = true }
uuid = { workspace = true }

[dev-dependencies]
criterion = { workspace = true }
flate2 = { workspace = true }
log = { workspace = true }
opentelemetry = { workspace = true }
opentelemetry_sdk = { workspace = true, features = ["testing"] }
statsd-parser = { workspace = true }

[[bench]]
name = "fast_vs_otel"
harness = false
required-features = ["otlp"]

[[bin]]
name = "bench_dynamic_series"
required-features = ["eviction"]
