[package] name = "g3proxy" version = "1.7.15" license.workspace = true edition.workspace = true rust-version = "1.66" description = "G3 generic proxy" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow.workspace = true thiserror.workspace = true async-trait.workspace = true async-recursion.workspace = true clap.workspace = true clap_complete.workspace = true yaml-rust.workspace = true once_cell.workspace = true futures-util.workspace = true nix.workspace = true rand.workspace = true tokio = { workspace = true, features = ["rt-multi-thread", "rt", "signal", "sync", "time", "io-util", "net", "fs"] } tokio-util = { workspace = true, features = ["time"] } tokio-rustls.workspace = true rustls.workspace = true tokio-openssl.workspace = true openssl.workspace = true openssl-probe = { workspace = true, optional = true } indexmap.workspace = true bytes.workspace = true chrono = { workspace = true, features = ["clock"] } uuid = { workspace = true, features = ["v1", "v4"] } log = { workspace = true, features = ["max_level_trace", "release_max_level_info"] } slog = { workspace = true, features = ["nested-values", "max_level_trace", "release_max_level_info"] } percent-encoding.workspace = true url.workspace = true http.workspace = true h2.workspace = true mime.workspace = true askama = "0.12" serde_json.workspace = true ip_network.workspace = true ip_network_table.workspace = true radix_trie.workspace = true base64.workspace = true pin-project.workspace = true memchr.workspace = true arc-swap.workspace = true capnp-rpc.workspace = true capnp.workspace = true itoa.workspace = true redis = { version = "0.23", default-features = false, features = ["aio", "tokio-comp", "cluster-async"] } ascii.workspace = true ahash.workspace = true governor = { workspace = true, features = ["std", "jitter"] } cadence.workspace = true rmpv.workspace = true mlua = { version = "0.8.9", features = ["send"], optional = true } pyo3 = { version = "0.19", features = ["auto-initialize"], optional = true } g3-compat.workspace = true g3-types = { workspace = true, features = ["auth-crypt", "rustls", "openssl", "acl-rule", "http", "route", "async-log"] } g3-socket.workspace = true g3-daemon.workspace = true g3-signal.workspace = true g3-datetime.workspace = true g3-statsd.workspace = true g3-yaml = { workspace = true, features = ["resolve", "rustls", "openssl", "acl-rule", "http", "ftp-client", "proxy", "route", "dpi", "icap"] } g3-json = { workspace = true, features = ["acl-rule", "resolve", "http", "rustls", "openssl", "proxy"] } g3-msgpack.workspace = true g3-io-ext.workspace = true g3-resolver = { path = "../lib/g3-resolver", features = ["trust-dns"] } g3-xcrypt.workspace = true g3-ftp-client.workspace = true g3-http.workspace = true g3-h2.workspace = true g3-socks.workspace = true g3-dpi.workspace = true g3-tls-cert.workspace = true g3-icap-client.workspace = true g3proxy-proto = { path = "proto" } [dev-dependencies] tokio = { workspace = true, features = ["macros", "io-util"] } tokio-util = { workspace = true, features = ["io"] } [build-dependencies] rustc_version.workspace = true [features] default = ["lua54", "python", "c-ares"] lua = ["mlua"] luajit = ["lua", "mlua/luajit"] lua51 = ["lua", "mlua/lua51"] lua53 = ["lua", "mlua/lua53"] lua54 = ["lua", "mlua/lua54"] python = ["pyo3"] c-ares = ["g3-resolver/c-ares"] vendored-openssl = ["openssl/vendored", "dep:openssl-probe"]