Add the workspace crate that will host a pure Rust Headscale/Tailscale- compatible VPN client. This first commit lands the crate skeleton plus the leaf modules that the rest of the stack builds on: - error: thiserror Error enum + Result alias - config: VpnConfig - keys: Curve25519 node/disco/wg key types with on-disk persistence - proto/types: PascalCase serde wire types matching Tailscale's JSON
39 lines
881 B
TOML
39 lines
881 B
TOML
[package]
|
|
name = "sunbeam-net"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
description = "Pure Rust Headscale/Tailscale-compatible VPN client"
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
tokio = { version = "1", features = ["full"] }
|
|
futures = "0.3"
|
|
blake2 = "0.10"
|
|
chacha20poly1305 = "0.10"
|
|
hkdf = "0.12"
|
|
hmac = "0.12"
|
|
h2 = "0.4"
|
|
http = "1"
|
|
boringtun = "0.7"
|
|
smoltcp = { version = "0.13", default-features = false, features = ["medium-ip", "proto-ipv4", "proto-ipv6", "socket-tcp", "std"] }
|
|
x25519-dalek = { version = "2", features = ["static_secrets"] }
|
|
crypto_box = "0.9"
|
|
rand = "0.8"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
zstd = "0.13"
|
|
bytes = "1"
|
|
tokio-util = { version = "0.7", features = ["codec"] }
|
|
base64 = "0.22"
|
|
tracing = "0.1"
|
|
thiserror = "2"
|
|
ipnet = "2"
|
|
|
|
[features]
|
|
integration = []
|
|
|
|
[dev-dependencies]
|
|
tokio-test = "0.4"
|
|
pretty_assertions = "1"
|
|
tempfile = "3"
|