[package] name = "burrow" version = "0.1.0" edition = "2021" description = "Burrow is an open source tool for burrowing through firewalls, built by teenagers at Hack Club." license = "GPL-3.0-or-later" [lib] crate-type = ["lib", "staticlib"] [dependencies] anyhow = "1.0" tokio = { version = "1.37", features = [ "rt", "macros", "sync", "io-util", "net", "process", "rt-multi-thread", "signal", "time", "tracing", "fs", ] } tun = { version = "0.1", path = "../tun", features = ["serde", "tokio"] } clap = { version = "4.4", features = ["derive"] } tracing = "0.1" tracing-log = "0.1" tracing-subscriber = { version = "0.3", features = ["std", "env-filter"] } log = "0.4" serde = { version = "1", features = ["derive"] } serde_json = "1.0" blake2 = "0.10" chacha20poly1305 = "0.10" rand = "0.8" bytes = "1" rand_core = "0.6" aead = "0.5" x25519-dalek = { version = "2.0", features = [ "reusable_secrets", "static_secrets", ] } ring = "0.17" parking_lot = "0.12" hmac = "0.12" base64 = "0.21" fehler = "1.0" ip_network_table = "0.2" ip_network = "0.4" ipnetwork = { version = "0.21", features = ["serde"] } async-channel = "2.1" schemars = "0.8" futures = "0.3.28" once_cell = "1.19" arti-client = "0.40.0" hickory-proto = "0.25.2" netstack-smoltcp = "0.2.1" tokio-util = { version = "0.7.18", features = ["compat"] } tor-rtcompat = "0.40.0" console-subscriber = { version = "0.2.0", optional = true } console = "0.15.8" axum = "0.7.4" argon2 = "0.5" reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", ] } rusqlite = { version = "0.38.0", features = ["blob"] } dotenv = "0.15.0" tonic = "0.12.0" prost = "0.13.1" prost-types = "0.13.1" tokio-stream = "0.1" async-stream = "0.2" tower = { version = "0.4.13", features = ["util"] } hyper-util = "0.1.6" toml = "0.8.15" rust-ini = "0.21.0" subtle = "2.6" [target.'cfg(target_os = "linux")'.dependencies] caps = "0.5" libc = "0.2" libsystemd = "0.7" nix = { version = "0.27", features = ["fs", "socket", "uio"] } tracing-journald = "0.3" [target.'cfg(target_vendor = "apple")'.dependencies] nix = { version = "0.27" } rusqlite = { version = "0.38.0", features = ["bundled", "blob"] } [target.'cfg(target_os = "macos")'.dependencies] tracing-oslog = { git = "https://github.com/Stormshield-robinc/tracing-oslog" } [dev-dependencies] insta = { version = "1.32", features = ["yaml"] } tempfile = "3.13" [package.metadata.generate-rpm] assets = [ { source = "target/release/burrow", dest = "/usr/bin/burrow", mode = "755" }, { source = "systemd/burrow.service", dest = "/etc/systemd/system/burrow.service", mode = "644" }, { source = "systemd/burrow.socket", dest = "/etc/systemd/system/burrow.socket", mode = "644" }, ] post_install_script = "../package/rpm/post_install" pre_uninstall_script = "../package/rpm/pre_uninstall" [features] tokio-console = ["dep:console-subscriber"] bundled = ["rusqlite/bundled"] [build-dependencies] tonic-build = "0.12.0"