mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
Expose the official Responses WebSocket endpoint so Codex can retry interrupted turns without proxy-side response splicing. Preserve upstream frames under backpressure, report pump exit reasons, organize Responses handlers by transport, and poll fingerprint updates daily. Keep the warning policy in the backend manifest instead of a repository-wide Cargo config. Co-authored-by: Codex <noreply@openai.com>
85 lines
3.3 KiB
TOML
85 lines
3.3 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"] }
|
|
dirs = "6.0.0"
|
|
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"
|
|
percent-encoding = "2.3.2"
|
|
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"] }
|
|
# 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.36", default-features = false, features = ["ring", "std", "tls12"] }
|
|
rustls-native-certs = "0.8.4"
|
|
rustls-pki-types = "1.14.1"
|
|
secrecy = "0.10.3"
|
|
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", "sqlite-bundled", "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"] }
|
|
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"
|