[package] name = "web3_proxy" version = "0.2.0" edition = "2021" default-run = "web3_proxy" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = ["deadlock_detection", "verbose_db"] deadlock_detection = ["parking_lot/deadlock_detection"] verbose_db = ["sea-orm/debug-print"] # TODO: turn tokio-console on with a feature. console-subscriber = { version = "0.1.7" } [dependencies] deferred-rate-limiter = { path = "../deferred-rate-limiter" } entities = { path = "../entities" } migration = { path = "../migration" } redis-rate-limiter = { path = "../redis-rate-limiter" } anyhow = { version = "1.0.65", features = ["backtrace"] } arc-swap = "1.5.1" argh = "0.1.9" axum = { version = "0.5.16", features = ["headers", "serde_json", "tokio-tungstenite", "ws"] } axum-client-ip = "0.2.0" axum-macros = "0.2.3" # TODO: import chrono from sea-orm so we always have the same version chrono = "0.4.22" counter = "0.5.6" dashmap = "5.4.0" derive_more = "0.99.17" dotenv = "0.15.0" ethers = { version = "0.17.0", features = ["rustls", "ws"] } fdlimit = "0.2.1" flume = "0.10.14" futures = { version = "0.3.24", features = ["thread-pool"] } hashbrown = { version = "0.12.3", features = ["serde"] } http = "0.2.8" ipnet = "2.5.0" metered = { version = "0.9.0", features = ["serialize"] } moka = { version = "0.9.4", default-features = false, features = ["future"] } notify = "5.0.0" num = "0.4.0" # TODO: import num_traits from sea-orm so we always have the same version num-traits = "0.2.15" parking_lot = { version = "0.12.1", features = ["arc_lock"] } petgraph = "0.6.2" proctitle = "0.1.1" rand = "0.8.5" # TODO: regex has several "perf" features that we might want to use regex = "1.6.0" reqwest = { version = "0.11.12", default-features = false, features = ["json", "tokio-rustls"] } handlebars = "4.3.4" rustc-hash = "1.1.0" siwe = "0.4.2" sea-orm = { version = "0.9.2", features = ["macros"] } serde = { version = "1.0.145", features = [] } serde_json = { version = "1.0.85", default-features = false, features = ["alloc", "raw_value"] } serde_prometheus = "0.1.6" # TODO: make sure this time version matches siwe. PR to put this in their prelude time = "0.3.14" tokio = { version = "1.21.1", features = ["full", "tracing"] } # TODO: make sure this uuid version matches sea-orm. PR to put this in their prelude tokio-stream = { version = "0.1.10", features = ["sync"] } toml = "0.5.9" tower = "0.4.13" # TODO: i don't think we need this. we can use it from tower-http instead. though this seems to use ulid and not uuid? tower-request-id = "0.2.0" tower-http = { version = "0.3.4", features = ["cors", "sensitive-headers", "trace"] } tracing = "0.1.36" # TODO: tracing-subscriber has serde and serde_json features that we might want to use tracing-subscriber = { version = "0.3.15", features = ["env-filter", "parking_lot"] } ulid = { version = "1.0.0", features = ["serde"] } url = "2.3.1" uuid = "1.1.2"