feat(net): scaffold sunbeam-net crate with foundations
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
This commit is contained in:
38
sunbeam-net/Cargo.toml
Normal file
38
sunbeam-net/Cargo.toml
Normal file
@@ -0,0 +1,38 @@
|
||||
[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"
|
||||
Reference in New Issue
Block a user