libdd-trace-utils 2.0.2

Trace utilities including span processing, MessagePack encoding/decoding, payload handling, and HTTP transport with retry logic for Datadog APM
Documentation
[package]
name = "libdd-trace-utils"
version = "2.0.2"
description = "Trace utilities including span processing, MessagePack encoding/decoding, payload handling, and HTTP transport with retry logic for Datadog APM"
homepage = "https://github.com/DataDog/libdatadog/tree/main/libdd-trace-utils"
repository = "https://github.com/DataDog/libdatadog/tree/main/libdd-trace-utils"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
autobenches = false

[lib]
bench = false

[[bench]]
name = "main"
harness = false
path = "benches/main.rs"

[dependencies]
anyhow = "1.0"
hyper = { workspace = true, optional = true, default-features = false }
"http" = "1"
"http-body" = "1"
http-body-util = "0.1"
serde = { version = "1.0.145", features = ["derive"] }
prost = "0.14.1"
rmp-serde = "1.1.1"
tracing = { version = "0.1", default-features = false }
serde_json = "1.0"
futures = { version = "0.3", default-features = false }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
rand = "0.8.5"
bytes = "1.11.1"
rmpv = { version = "1.3.0", default-features = false }
rmp = { version = "0.8.14", default-features = false }

libdd-common = { version = "2.0.1", path = "../libdd-common", default-features = false }
libdd-trace-protobuf = { version = "2.0.0", path = "../libdd-trace-protobuf" }
libdd-trace-normalization = { version = "1.0.2", path = "../libdd-trace-normalization" }
libdd-tinybytes = { version = "1.1.0", path = "../libdd-tinybytes", features = [
    "bytes_string",
    "serialization",
] }

# Compression feature
flate2 = { version = "1.0", optional = true }
zstd = { version = "0.13.3", default-features = false, optional = true }

# test-utils feature
cargo_metadata = { version = "0.18.1", optional = true }
# Dependency of cargo metadata, but 0.1.8 requires too new of a rust version.
cargo-platform = { version = "=0.1.7", optional = true }
httpmock = { version = "0.8.0-alpha.1", optional = true }
urlencoding = { version = "2.1.3", optional = true }
indexmap = "2.11"

[dev-dependencies]
bolero = "0.13"
criterion = "0.5.1"
httpmock = { version = "0.8.0-alpha.1" }
serde_json = "1.0"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
libdd-trace-utils = { path = ".", features = ["test-utils"] }
tempfile = "3.3.0"

[features]
default = ["https"]
https = ["libdd-common/https"]
mini_agent = ["compression", "libdd-common/use_webpki_roots"]
test-utils = [
    "hyper/server",
    "httpmock",
    "cargo_metadata",
    "cargo-platform",
    "urlencoding",
]
compression = ["zstd", "flate2"]
# FIPS mode uses the FIPS-compliant cryptographic provider (Unix only)
fips = ["libdd-common/fips"]