About this project
tailscaled-rs is an independent, from-scratch Rust system daemon designed to join WireGuard-based mesh overlay networks by implementing the Tailscale control protocol. Built on top of the embeddable `tailscale-rs` engine library, this project provides the missing daemon layer: a persistent background service (`tailnetd`) featuring a reconcilable state machine, persisted preferences, and a local control socket for interaction via a thin CLI (`tnet`).
Key capabilities include:
- **Network Joining**: Non-interactively joins a real tailnet using pre-auth keys, obtaining a tailnet IP and establishing connectivity over DERP-relayed links.
- **State Management**: Implements an IPN-style state machine (NoState → NeedsLogin → Starting → Running) derived from live engine reality, ensuring no state drift. Preferences such as hostname and routing settings are persisted across restarts.
- **Local Control**: Exposes a LocalAPI over a Unix domain socket, allowing the `tnet` CLI to manage node status, bring connections up or down, and adjust policies like hostnames and route acceptance in real-time without reconnecting.
- **System Integration**: Supports installation as a system service on Linux (systemd) and macOS (launchd), handling boot-time startup and clean shutdown teardown of network routes.
The project is currently in an experimental MVP phase. It operates in userspace-networking mode by default, meaning it does not yet program kernel TUN interfaces or modify OS-level DNS/routing directly; applications reach the tailnet via the daemon's netstack. Future roadmaps include TUN-mode support, interactive browser login, MagicDNS integration, exit-node functionality, and SSH/Serve features.
Important warnings apply: the underlying cryptography is unaudited, and the software carries no stability guarantees. It is not affiliated with, endorsed by, or sponsored by Tailscale Inc. Users should not rely on it for data privacy in production environments until further development matures. The project is licensed under BSD-3-Clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.