mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
Harden WebSocket ownership and capacity semantics, split the transport into focused modules, and move admin queries, quota observations, and upstream adapters behind explicit consumer-owned ports. Parse frontend payloads at the API boundary, centralize SSE and store ownership, add latest-request-wins queries with inferred view types, and enforce dependency direction through lint and AST tests. Co-authored-by: Codex <noreply@openai.com>
85 lines
3.4 KiB
TOML
85 lines
3.4 KiB
TOML
[package]
|
|
name = "codex-proxy-rs"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
publish = false
|
|
rust-version = "1.97"
|
|
|
|
[dependencies]
|
|
argon2 = "0.5.3"
|
|
async-trait = "0.1.89"
|
|
axum = { version = "0.8.9", default-features = false, features = ["http1", "json", "query", "tokio", "tracing"] }
|
|
base64 = "0.22.1"
|
|
bytes = "1.11.1"
|
|
chrono = { version = "0.4.45", features = ["serde", "clock"] }
|
|
config = { version = "0.15.23", default-features = false, features = ["yaml"] }
|
|
flate2 = "1.1.9"
|
|
futures = "0.3.32"
|
|
hex = "0.4.3"
|
|
hmac = "0.13.0"
|
|
hyper = { version = "1.10.1", features = ["http1", "server"] }
|
|
hyper-util = { version = "0.1.20", features = ["tokio"] }
|
|
indexmap = { version = "2.0", features = ["serde"] }
|
|
ipnet = "2.12.0"
|
|
rand = "0.10.1"
|
|
# Enables password_hash::rand_core::OsRng for argon2 0.5.
|
|
rand_core = { version = "0.6.4", features = ["getrandom"] }
|
|
redis = { version = "1.3.0", default-features = false, features = ["tokio-comp", "connection-manager", "script"] }
|
|
roxmltree = "0.21.1"
|
|
# Pinned to the Codex Desktop 26.707.41301 HTTP stack; re-audit a newer Desktop before upgrading.
|
|
reqwest = { version = "=0.12.28", default-features = false, features = ["json", "stream", "cookies", "rustls-tls-native-roots", "gzip", "brotli", "zstd", "deflate", "http2"] }
|
|
rustls = { version = "=0.23.42", default-features = false, features = ["ring", "std", "tls12"] }
|
|
rustls-native-certs = "0.8.4"
|
|
rustls-pki-types = "1.14.1"
|
|
secrecy = { version = "0.10.3", features = ["serde"] }
|
|
semver = "1.0.27"
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = { version = "1.0.150", features = ["preserve_order"] }
|
|
sha2 = "0.11.0"
|
|
sqlx = { version = "0.9.0", default-features = false, features = ["runtime-tokio", "tls-rustls", "postgres", "chrono", "json"] }
|
|
subtle = "2.6.1"
|
|
tar = "0.4.44"
|
|
thiserror = "2.0.18"
|
|
tokio = { version = "1.52.3", default-features = false, features = ["macros", "rt-multi-thread", "signal", "fs", "time", "sync", "net"] }
|
|
tokio-util = { version = "0.7.18", features = ["rt"] }
|
|
tokio-tungstenite = { version = "0.28.0", features = ["proxy", "rustls-tls-native-roots"] }
|
|
tower = { version = "0.5.3", features = ["util"] }
|
|
tower-http = { version = "0.6.11", features = ["trace", "cors", "request-id", "timeout", "fs"] }
|
|
tracing = "0.1.44"
|
|
tracing-appender = "0.2.5"
|
|
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] }
|
|
tungstenite = { version = "0.27.0", features = ["deflate", "proxy"] }
|
|
url = "2.5.8"
|
|
uuid = { version = "1.23.3", features = ["v4", "v7", "serde"] }
|
|
|
|
[dev-dependencies]
|
|
sqlx = { version = "0.9.0", default-features = false, features = ["derive"] }
|
|
syn = { version = "2.0.118", features = ["full", "visit"] }
|
|
tempfile = "3.27.0"
|
|
tokio = { version = "1.52.3", default-features = false, features = ["test-util"] }
|
|
wiremock = "0.6.5"
|
|
|
|
[patch.crates-io]
|
|
tokio-tungstenite = { git = "https://github.com/openai-oss-forks/tokio-tungstenite", rev = "0e5b2d73aa18dd9f0a50ee9ff199d5aef7594186" }
|
|
tungstenite = { git = "https://github.com/openai-oss-forks/tungstenite-rs", rev = "4fffad30fe373adbdcffab9545e9e9bf4f2fc19f" }
|
|
|
|
[lints.rust]
|
|
warnings = "deny"
|
|
unsafe_code = "forbid"
|
|
|
|
[lints.clippy]
|
|
all = { level = "deny", priority = 10 }
|
|
redundant_clone = { level = "deny", priority = 9 }
|
|
large_enum_variant = { level = "warn", priority = 8 }
|
|
needless_collect = { level = "deny", priority = 7 }
|
|
|
|
[profile.dev]
|
|
debug = true
|
|
|
|
[profile.release]
|
|
debug = false
|
|
strip = "symbols"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
panic = "abort"
|