telemetry-kit 0.3.0

Privacy-first, batteries-included telemetry toolkit for Rust applications with OpenTelemetry
Documentation
[package]
name = "telemetry-kit"
version = "0.3.0"
edition = "2021"
authors = ["Ibrahim Cesar <email@ibrahimcesar.com>"]
license = "MIT OR Apache-2.0"
description = "Privacy-first, batteries-included telemetry toolkit for Rust applications with OpenTelemetry"
repository = "https://github.com/ibrahimcesar/telemetry-kit"
homepage = "https://github.com/ibrahimcesar/telemetry-kit"
documentation = "https://docs.telemetry-kit.dev"
readme = "README.md"
keywords = ["telemetry", "opentelemetry", "observability", "tracing", "metrics"]
categories = [
    "development-tools",
    "development-tools::profiling",
    "network-programming",
]
rust-version = "1.75.0"

[dependencies]
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# HTTP client
reqwest = { version = "0.11", features = ["json"] }

# Cryptography
hex = "0.4"
hmac = "0.12"
sha2 = "0.10"

# UUID generation
uuid = { version = "1.6", features = ["v4", "serde"] }

# Time handling
chrono = { version = "0.4", features = ["serde"] }

# Async runtime
tokio = { version = "1.35", features = ["full"], optional = true }

# SQLite storage
rusqlite = { version = "0.30", features = ["bundled"] }

# Error handling
thiserror = "1.0"

# System information
machine-uid = "0.5"

# Random number generation
rand = "0.8"

# Directory helpers
dirs = "5.0"

# Procedural macros
telemetry-kit-macros = { version = "0.3.0", path = "telemetry-kit-macros", optional = true }

# Node.js bindings (optional)
napi = { version = "2.16", features = ["async", "tokio_rt"], optional = true }
napi-derive = { version = "2.16", optional = true }

# CLI dependencies (optional)
colored = { version = "2.1", optional = true }
clap = { version = "4.4", features = [
    "derive",
    "color",
    "suggestions",
], optional = true }
dialoguer = { version = "0.11", optional = true }
indicatif = { version = "0.17", optional = true }


[dev-dependencies]
criterion = { version = "0.5", features = ["async_tokio"] }
proptest = "1.4"
tokio-test = "0.4"
wiremock = "0.6"


[features]
cli = ["clap", "dialoguer", "indicatif", "colored", "tokio"]
default = ["sync", "privacy"]
macros = ["telemetry-kit-macros"]
napi-bindings = ["napi", "napi-derive", "tokio"]
privacy = []
sync = ["tokio"]

[lib]
name = "telemetry_kit"
path = "src/lib.rs"

[[bin]]
name = "telemetry-kit"
path = "src/bin/cli.rs"
required-features = ["cli"]

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

[workspace]
members = [".", "server", "telemetry-kit-macros"]