[package] name = "codex-proxy-rs" version = "0.1.0" edition = "2021" license = "MIT" publish = false description = "A lean Rust Codex proxy backed only by ChatGPT/Codex accounts." repository = "https://example.invalid/codex-proxy-rs" rust-version = "1.95" [dependencies] aes-gcm = "0.10.3" anyhow = "1.0.102" argon2 = "0.5.3" async-trait = "0.1.89" axum = "0.8.9" base64 = "0.22.1" chrono = { version = "0.4.45", features = ["serde", "clock"] } config = "0.15.23" dotenvy = "0.15.7" futures = "0.3.32" hmac = "0.13.0" rand = "0.10.1" reqwest = { version = "=0.12.28", default-features = false, features = ["json", "stream", "cookies", "rustls-tls-native-roots", "gzip", "brotli", "zstd", "deflate"] } rustls = { version = "=0.23.36", default-features = false, features = ["ring", "std", "tls12"] } secrecy = "0.10.3" serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.150" serde_yaml = "0.9.34" sha2 = "0.11.0" sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-rustls", "sqlite", "chrono", "uuid", "migrate"] } thiserror = "2.0.18" tokio = { version = "1.52.3", features = ["macros", "rt-multi-thread", "signal", "fs", "time", "sync", "net"] } tower = { version = "0.5.3", features = ["util"] } tower-http = { version = "0.6.11", features = ["trace", "cors", "request-id", "timeout"] } tracing = "0.1.44" tracing-appender = "0.2.5" tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] } uuid = { version = "1.23.3", features = ["v4", "v7", "serde"] } zeroize = "1.8.2" [dev-dependencies] insta = "1.47.2" pretty_assertions = "1.4.1" tempfile = "3.27.0" wiremock = "0.6.5" [lints.rust] future_incompatible = { level = "warn", priority = -1 } nonstandard_style = { level = "deny", priority = -1 } 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 }