[package] name = "fips" version = "0.3.0-dev" edition = "2024" description = "A distributed, decentralized network routing protocol for mesh nodes connecting over arbitrary transports" license = "MIT" authors = ["Johnathan Corgan "] repository = "https://github.com/jmcorgan/fips" readme = "README.md" [features] default = ["tui", "ble"] tui = ["dep:ratatui"] ble = ["dep:bluer"] gateway = ["dep:rustables"] [dependencies] ratatui = { version = "0.30", optional = true } secp256k1 = { version = "0.30", features = ["rand", "global-context"] } sha2 = "0.10" hkdf = "0.12" chacha20poly1305 = "0.10" rand = "0.10.0" thiserror = "2.0" bech32 = "0.11" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9" dirs = "6.0" hex = "0.4" clap = { version = "4.5", features = ["derive"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio = { version = "1", features = ["rt", "macros", "signal", "sync", "net", "time", "process", "io-util"] } futures = "0.3" simple-dns = "0.11.2" socket2 = { version = "0.6.2", features = ["all"] } tokio-socks = "0.5" portable-atomic = { version = "1", features = ["std"] } rustables = { version = "0.8.7", optional = true } [target.'cfg(unix)'.dependencies] tun = { version = "0.8.5", features = ["async"] } libc = "0.2" [target.'cfg(target_os = "linux")'.dependencies] rtnetlink = "0.20.0" bluer = { version = "0.17", features = ["bluetoothd", "l2cap"], optional = true } [target.'cfg(windows)'.dependencies] wintun = "0.5" windows-service = "0.7" [package.metadata.deb] maintainer = "Johnathan Corgan " copyright = "2026 Johnathan Corgan" license-file = ["LICENSE", "0"] section = "net" priority = "optional" depends = "libc6, systemd, libdbus-1-3" recommends = "bluez" extended-description = """\ FIPS is a distributed, decentralized network routing protocol for mesh \ nodes connecting over arbitrary transports including UDP, TCP, Ethernet, \ Tor, and Bluetooth (BLE). It provides encrypted peer-to-peer connectivity \ with automatic key management, TUN-based virtual networking, and .fips DNS \ resolution.""" maintainer-scripts = "packaging/debian/" assets = [ ["target/release/fips", "/usr/bin/", "755"], ["target/release/fipsctl", "/usr/bin/", "755"], ["target/release/fipstop", "/usr/bin/", "755"], ["packaging/common/fips.yaml", "/etc/fips/fips.yaml", "600"], ["packaging/common/hosts", "/etc/fips/hosts", "644"], ["packaging/debian/fips.service", "/lib/systemd/system/fips.service", "644"], ["packaging/debian/fips-dns.service", "/lib/systemd/system/fips-dns.service", "644"], ["packaging/common/fips-dns-setup", "/usr/lib/fips/fips-dns-setup", "755"], ["packaging/common/fips-dns-teardown", "/usr/lib/fips/fips-dns-teardown", "755"], ["packaging/debian/fips.tmpfiles", "/usr/lib/tmpfiles.d/fips.conf", "644"], ["target/release/fips-gateway", "/usr/bin/", "755"], ["packaging/debian/fips-gateway.service", "/lib/systemd/system/fips-gateway.service", "644"], ] conf-files = ["/etc/fips/fips.yaml", "/etc/fips/hosts"] [dev-dependencies] tempfile = "3.15" criterion = { version = "0.8.2", features = ["html_reports"] } tokio = { version = "1", features = ["test-util"] } [[bin]] name = "fipsctl" path = "src/bin/fipsctl.rs" [[bin]] name = "fips-gateway" path = "src/bin/fips-gateway.rs" required-features = ["gateway"] [[bin]] name = "fipstop" path = "src/bin/fipstop/main.rs" required-features = ["tui"]