[package] name = "g3-types" version = "0.3.0" license.workspace = true edition.workspace = true rust-version = "1.63.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow.workspace = true thiserror.workspace = true idna.workspace = true libc.workspace = true percent-encoding.workspace = true rand.workspace = true rustc-hash.workspace = true fnv.workspace = true metrohash = "1.0" smallvec = "1.6" memchr.workspace = true url.workspace = true num-traits = "0.2" governor = { workspace = true, features = ["std", "jitter"] } digest = { workspace = true, optional = true } md-5 = { workspace = true, optional = true } sha-1 = { version = "0.10.0", optional = true } blake3 = { version = "1.4", "default-features" = false, optional = true } hex = { workspace = true, optional = true } ahash = { workspace = true, optional = true } ip_network = { workspace = true, optional = true } ip_network_table = { workspace = true, optional = true } once_cell = { workspace = true, optional = true } regex = { workspace = true, optional = true } radix_trie = { workspace = true, optional = true } rustls = { workspace = true, optional = true } webpki-roots = { version = "0.23", optional = true } rustls-pemfile = { workspace = true, optional = true } openssl-probe = { workspace = true, optional = true } openssl = { workspace = true, optional = true } lru = { version = "0.10", default-features = false, optional = true } bytes = { workspace = true, optional = true } http = { workspace = true, optional = true } base64 = { workspace = true, optional = true } flume = { workspace = true, features = ["eventual-fairness"], optional = true } slog = { workspace = true, optional = true } indexmap = { workspace = true, optional = true } [features] default = [] auth-crypt = ["dep:digest", "dep:md-5", "dep:sha-1", "dep:blake3", "dep:hex"] resolve = ["dep:ahash", "dep:radix_trie"] rustls = ["dep:rustls", "dep:webpki-roots", "dep:rustls-pemfile", "dep:openssl-probe"] openssl = ["dep:openssl", "dep:ahash", "dep:lru"] acl-rule = ["resolve", "dep:ahash", "dep:ip_network", "dep:ip_network_table", "dep:once_cell", "dep:regex", "dep:radix_trie", "proxy"] http = ["dep:http", "dep:bytes", "dep:base64"] proxy = ["http", "openssl"] route = ["dep:ahash", "dep:radix_trie", "dep:indexmap", "resolve"] async-log = ["dep:flume", "dep:slog"]