[package] name = "pingora-core" version = "0.4.0" authors = ["Yuchen Wu "] license = "Apache-2.0" edition = "2021" repository = "https://github.com/cloudflare/pingora" categories = ["asynchronous", "network-programming"] keywords = ["async", "http", "network", "pingora"] exclude = ["tests/*"] description = """ Pingora's APIs and traits for the core network protocols. """ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "pingora_core" path = "src/lib.rs" [dependencies] pingora-runtime = { version = "0.4.0", path = "../pingora-runtime" } pingora-openssl = { version = "0.4.0", path = "../pingora-openssl", optional = true } pingora-boringssl = { version = "0.4.0", path = "../pingora-boringssl", optional = true } pingora-pool = { version = "0.4.0", path = "../pingora-pool" } pingora-error = { version = "0.4.0", path = "../pingora-error" } pingora-timeout = { version = "0.4.0", path = "../pingora-timeout" } pingora-http = { version = "0.4.0", path = "../pingora-http" } pingora-rustls = { version = "0.4.0", path = "../pingora-rustls", optional = true } tokio = { workspace = true, features = ["net", "rt-multi-thread", "signal"] } futures = "0.3" async-trait = { workspace = true } httparse = { workspace = true } bytes = { workspace = true } http = { workspace = true } log = { workspace = true } h2 = { workspace = true } clap = { version = "3.2.25", features = ["derive"] } once_cell = { workspace = true } serde = { version = "1.0", features = ["derive"] } serde_yaml = "0.8" strum = "0.26.2" strum_macros = "0.26.2" libc = "0.2.70" chrono = { version = "~0.4.31", features = ["alloc"], default-features = false } prometheus = "0.13" sentry = { version = "0.26", features = [ "backtrace", "contexts", "panic", "reqwest", "rustls", ], default-features = false, optional = true } regex = "1" percent-encoding = "2.1" parking_lot = { version = "0.12", features = ["arc_lock"] } socket2 = { version = ">=0.4, <1.0.0", features = ["all"] } flate2 = { version = "1", features = ["zlib-ng"], default-features = false } sfv = "0" rand = "0.8" ahash = { workspace = true } unicase = "2" brotli = "3" openssl-probe = "0.1" tokio-test = "0.4" zstd = "0" httpdate = "1" x509-parser = { version = "0.16.0", optional = true } ouroboros = { version = "0.18.4", optional = true } [target.'cfg(unix)'.dependencies] daemonize = "0.5.0" nix = "~0.24.3" [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.59.0", features = ["Win32_Networking_WinSock"] } [dev-dependencies] env_logger = "0.9" reqwest = { version = "0.11", features = [ "rustls-tls", ], default-features = false } hyper = "0.14" [target.'cfg(unix)'.dev-dependencies] hyperlocal = "0.8" jemallocator = "0.5" [features] default = [] openssl = ["pingora-openssl", "openssl_derived",] boringssl = ["pingora-boringssl", "openssl_derived",] rustls = ["pingora-rustls", "any_tls", "dep:x509-parser", "ouroboros"] patched_http1 = ["pingora-http/patched_http1"] openssl_derived = ["any_tls"] any_tls = [] sentry = ["dep:sentry"]