[package] name = "strix-firewall" version = "0.1.0" edition = "2021" license = "Apache-2.0" authors = ["Strix"] description = "Screens package downloads for known malware before they reach your machine" repository = "https://github.com/usestrix/firewall" homepage = "https://github.com/usestrix/firewall" # The proxy-test example lives under tests/, which cargo would otherwise claim # as an integration test; new tests/*.rs need an explicit [[test]] entry. autotests = false # Only Windows ships the service and tray. [package.metadata.dist.binaries] x86_64-pc-windows-msvc = ["firewall", "firewall-service", "firewall-tray"] aarch64-apple-darwin = ["firewall"] x86_64-apple-darwin = ["firewall"] aarch64-unknown-linux-gnu = ["firewall"] x86_64-unknown-linux-gnu = ["firewall"] [package.metadata.wix] upgrade-guid = "D944C2F6-BF55-4B21-A60E-1BBDB1A66293" path-guid = "033B1050-23D0-4F5A-A0D3-F4757B4B67E0" license = false eula = false [lib] name = "firewall" # The macOS extension links a staticlib, built on demand: # cargo rustc --lib --crate-type staticlib crate-type = ["lib"] [[bin]] name = "firewall" path = "src/main.rs" [[bin]] name = "firewall-service" path = "src/bin/firewall-service.rs" required-features = ["machine-wide"] [[bin]] name = "firewall-tray" path = "src/bin/firewall-tray.rs" required-features = ["machine-wide"] [[bin]] name = "firewall-uninstall" path = "src/bin/firewall-uninstall.rs" required-features = ["machine-wide"] [[example]] name = "proxy-test" path = "tests/proxy-test/main.rs" [[test]] name = "forward" path = "tests/forward.rs" [[test]] name = "registries" path = "tests/registries.rs" [[test]] name = "config" path = "tests/config.rs" [[test]] name = "denylist" path = "tests/denylist.rs" [[test]] name = "osv" path = "tests/osv.rs" [[test]] name = "age" path = "tests/age.rs" [[test]] name = "mitm" path = "tests/mitm.rs" [[test]] name = "tpm" path = "tests/tpm.rs" [[test]] name = "managers" path = "tests/managers.rs" [[test]] name = "blocks" path = "tests/blocks.rs" [features] # Builds the machine-wide binaries: the Windows service and tray, and the macOS uninstaller. machine-wide = [] [dependencies] clap = "4.6.6" directories = "6.0.0" percent-encoding = "2.3.2" rama = { version = "0.4.0", features = ["boring", "http-full", "ring", "rustls"] } rand = "0.10.2" rcgen = "0.14.10" regex = "1.13.1" semver = "1.0.28" serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" time = { version = "0.3.47", features = ["formatting", "parsing"] } tokio = { version = "1.53.1", features = ["io-util", "rt", "sync", "time"] } tracing = "0.1.44" tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } which = "8" [target.'cfg(target_vendor = "apple")'.dependencies] core-foundation = "0.10.1" rama = { version = "0.4.0", features = ["net-apple-networkextension"] } security-framework = "3.7.0" security-framework-sys = "2.17.0" [target.'cfg(windows)'.dependencies] muda = { version = "0.21.2", default-features = false } png = "0.18.1" rama = { version = "0.4.0", features = ["dns-hickory"] } schannel = "0.1.29" tokio = { version = "1.53.1", features = ["net"] } tracing-appender = "0.2.5" tray-icon = { version = "0.26.1", default-features = false } windows = { version = "0.62", features = ["Win32_Foundation", "Win32_Security", "Win32_Security_Authorization", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Console", "Win32_System_Environment", "Win32_System_JobObjects", "Win32_System_Pipes", "Win32_System_Threading", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging"] } windows-registry = "0.6.1" windows-service = "0.8.0" [dev-dependencies] tokio = { version = "1.53.1", features = ["macros", "rt-multi-thread"] } [profile.dist] inherits = "release" lto = "thin"