[package]
name = "opentelemetry-lambda-tower"
version = "0.1.5"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors = ["Daniel Verrall"]
description = "OpenTelemetry Tower middleware for AWS Lambda"
repository = "https://github.com/djvcom/lambda-observability"
documentation = "https://docs.rs/opentelemetry-lambda-tower"
readme = "README.md"
keywords = ["lambda", "opentelemetry", "tracing", "aws", "serverless"]
categories = ["development-tools::profiling", "web-programming"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
tower = "0.5"
tower-service = "0.3"
pin-project = "1"
futures-core = "0.3"
tokio.workspace = true
tracing.workspace = true
tracing-opentelemetry.workspace = true
opentelemetry.workspace = true
opentelemetry_sdk.workspace = true
lambda_runtime.workspace = true
aws_lambda_events = { version = "1.0", default-features = false, features = [] }
http = "1"
opentelemetry-semantic-conventions = { version = "0.31", features = ["semconv_experimental"] }
lambda_http = { version = "1.0.2", optional = true }
serde = { workspace = true, features = ["derive"] }
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util", "macros"] }
tokio-test = "0.4"
opentelemetry-stdout = "0.31"
serde_json = "1"
temp-env = "0.3"
serial_test = "3.3"
aws_lambda_events = { version = "1.0", features = ["apigw", "sqs", "sns"] }
chrono.workspace = true
lambda_http = "1.0.2"
tracing-subscriber = { workspace = true, features = ["fmt"] }
serde = { workspace = true, features = ["derive"] }
mock-collector = "0.2.7"
opentelemetry-configuration.workspace = true
[[example]]
name = "http_handler"
required-features = ["lambda-http"]
[[example]]
name = "sqs_handler"
required-features = ["sqs"]
[features]
default = ["http", "sqs"]
http = ["aws_lambda_events/apigw"]
sqs = ["aws_lambda_events/sqs"]
sns = ["aws_lambda_events/sns"]
lambda-http = ["dep:lambda_http", "aws_lambda_events/apigw", "aws_lambda_events/alb"]
full = ["http", "sqs", "sns", "lambda-http"]
fuzz = ["http", "sqs", "sns"]