[package]
name = "vopono_core"
description = "Library code for running VPN connections in network namespaces"
version = "0.1.15"
edition = "2024"
authors = ["James McMurray <jamesmcm03@gmail.com>"]
license = "GPL-3.0-or-later"
repository = "https://github.com/jamesmcm/vopono"
homepage = "https://github.com/jamesmcm/vopono"
readme = "README.md"
keywords = ["vopono", "vpn", "wireguard", "openvpn", "netns"]

[dependencies]
anyhow = "1"
directories-next = "2"
log = "0.4"
which = "8"
users = "0.11"
nix = { version = "0.30", features = [
    "user",
    "signal",
    "fs",
    "process",
    "sched",
    "mount",
] }
serde = { version = "1", features = ["derive", "std"] }
csv = "1"
regex = "1"
ron = "0.11"
walkdir = "2"
# Stuck on rand 0.6 due to x25519-dalek:
# https://github.com/dalek-cryptography/curve25519-dalek/issues/731
# https://github.com/dalek-cryptography/curve25519-dalek/pull/729
rand = "0.9"
rand_core = { version = "0.9" }
toml = "0.9"
ipnet = { version = "2", features = ["serde"] }
reqwest = { default-features = false, version = "0.12", features = [
    "blocking",
    "json",
    "rustls-tls",
] } # TODO: Can we remove Tokio dependency?
sysinfo = "0.37"
base64 = "0.22"
x25519-dalek = { version = "3.0.0-pre.0", features = ["static_secrets"] }
strum = "0.27"
strum_macros = "0.27"
zip = "5"
maplit = "1"
webbrowser = "1"
serde_json = "1"
signal-hook = "0.3"
sha2 = "0.10"
tiny_http = "0.12"
chrono = "0.4"
json = "0.12"
shell-words = "1"
dns-lookup = "3"
libc = "0.2"
pem = "3"
rustls = { version = "0.23", default-features = false, features = ["ring"] }
rustls-connector = { version = "0.22", default-features = false }
nom = "8"
