1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
[package]
name = "pingora-core"
version = "0.4.0"
authors = ["Yuchen Wu <yuchen@cloudflare.com>"]
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 }
lru = { 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 }
thread_local = "1.0"
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]
matches = "0.1"
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"]
|