[package] name = "common_utils" description = "Utilities shared across `router` and other crates" version = "0.1.0" edition.workspace = true rust-version.workspace = true readme = "README.md" license.workspace = true [features] signals = ["dep:signal-hook-tokio", "dep:signal-hook", "dep:tokio", "dep:router_env", "dep:futures"] async_ext = ["dep:futures", "dep:async-trait"] logs = ["dep:router_env"] [dependencies] async-trait = { version = "0.1.68", optional = true } bytes = "1.4.0" diesel = "2.1.0" error-stack = "0.3.1" futures = { version = "0.3.28", optional = true } hex = "0.4.3" md5 = "0.7.0" nanoid = "0.4.0" once_cell = "1.18.0" quick-xml = { version = "0.28.2", features = ["serialize"] } rand = "0.8.5" regex = "1.8.4" ring = { version = "0.16.20", features = ["std"] } serde = { version = "1.0.163", features = ["derive"] } serde_json = "1.0.96" serde_urlencoded = "0.7.1" signal-hook = { version = "0.3.15", optional = true } thiserror = "1.0.40" time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"], optional = true } phonenumber = "0.3.2+8.13.9" # First party crates masking = { version = "0.1.0", path = "../masking" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"], optional = true } [target.'cfg(not(target_os = "windows"))'.dependencies] signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"], optional = true } [dev-dependencies] fake = "2.6.1" proptest = "1.2.0" test-case = "3.1.0"