[package]
name = "trojan-rules"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
description = "Rule-based routing engine for trojan-rs (Surge/Clash compatible)"
keywords = ["rules", "routing", "surge", "clash"]
categories = ["network-programming"]

[features]
default = ["geoip", "http"]
geoip = ["maxminddb"]
http = ["reqwest", "tokio", "tokio-util"]

[dependencies]
aho-corasick = "1"
arc-swap.workspace = true
ipnet = "2"
maxminddb = { version = "0.27", optional = true }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"], optional = true }
rustc-hash = "2"
serde.workspace = true
serde_yaml.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["fs", "time", "sync"], optional = true }
tokio-util = { workspace = true, optional = true }
tracing.workspace = true
trojan-config.workspace = true

[lints]
workspace = true
