Skip to content

Commit bd2f9fa

Browse files
committed
doc: update readme
1 parent 5d9953c commit bd2f9fa

File tree

1 file changed

+82
-95
lines changed

1 file changed

+82
-95
lines changed

README.md

Lines changed: 82 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ Another high-performance VPN tunnel implementation written in Rust.
1111

1212
## ✨ Features
1313

14-
- 🌍 **Multi-Platform Support** - Android, iOS, Windows, macOS, Linux
14+
- 🌍 **Multi-Platform Support** - Linux, macOS, Windows
1515
- 🏢 **Multi-Tenancy** - Cluster-based isolation for different organizations
16-
- 🔄 **P2P Communication** - Direct peer-to-peer tunneling
17-
- 🌐 **IPv6 Ready** - Full IPv6 support for modern networks
1816
-**High Performance** - Asynchronous I/O with Tokio runtime
1917
- 🔐 **Multiple Encryption Methods**
2018
- **ChaCha20-Poly1305** (Default, Recommended)
@@ -25,10 +23,10 @@ Another high-performance VPN tunnel implementation written in Rust.
2523
## 📋 Table of Contents
2624

2725
- [Quick Start](#quick-start)
28-
- [Installation](#installation)
26+
- [Download](#download)
2927
- [Configuration](#configuration)
3028
- [Usage](#usage)
31-
- [Build Instructions](#build-instructions)
29+
- [Build from Source](#build-from-source)
3230
- [Architecture](#architecture)
3331
- [Security](#security)
3432
- [Contributing](#contributing)
@@ -37,71 +35,71 @@ Another high-performance VPN tunnel implementation written in Rust.
3735

3836
### Prerequisites
3937

40-
- Rust 1.70 or higher
41-
- TUN/TAP driver installed on your system
42-
- Docker (for cross-compilation with `cross`)
38+
**All Platforms:**
39+
- TUN/TAP driver support
4340

44-
### Build from Source
41+
**Windows:**
42+
- Download [Wintun driver](https://www.wintun.net/) (required for TUN device)
43+
- Administrator privileges
4544

46-
```bash
47-
# Clone the repository
48-
git clone https://github.com/ICKelin/rustun.git
49-
cd rustun
45+
**Linux/macOS:**
46+
- Root/sudo privileges (or set capabilities on Linux)
5047

51-
# Build release binaries (server and client)
52-
cargo build --release
48+
### Download Pre-built Binaries
5349

54-
# Binaries will be in target/release/
55-
# - server
56-
# - client
57-
```
50+
**Download from [GitHub Releases](https://github.com/smartethnet/rustun/releases/latest)**
5851

59-
### Cross-Compilation for All Platforms
52+
Available for:
53+
- **Linux** - x86_64 (glibc/musl), ARM64 (glibc/musl)
54+
- **macOS** - Intel (x86_64), Apple Silicon (ARM64)
55+
- **Windows** - x86_64 (MSVC)
6056

61-
Use the provided build script to compile for all supported platforms:
57+
Each release includes:
58+
- `server` - VPN server binary
59+
- `client` - VPN client binary
60+
- `server.toml.example` - Configuration example
61+
- `routes.json.example` - Routes example
6262

63+
### Installation
64+
65+
**Linux/macOS:**
6366
```bash
64-
# Install build tools
65-
cargo install cross --git https://github.com/cross-rs/cross
66-
cargo install cargo-xwin
67-
68-
# Run the build script
69-
./build.sh v1.0.0
70-
71-
# Find binaries in dist/
72-
# - rustun-v1.0.0-x86_64-unknown-linux-gnu.tar.gz
73-
# - rustun-v1.0.0-aarch64-unknown-linux-gnu.tar.gz
74-
# - rustun-v1.0.0-x86_64-unknown-linux-musl.tar.gz (static)
75-
# - rustun-v1.0.0-x86_64-apple-darwin.tar.gz
76-
# - rustun-v1.0.0-aarch64-apple-darwin.tar.gz
77-
# - rustun-v1.0.0-x86_64-pc-windows-msvc.zip
78-
# - SHA256SUMS
79-
```
67+
# Download and extract (example for Linux x86_64)
68+
wget https://github.com/smartethnet/rustun/releases/download/v1.0.0/rustun-v1.0.0-x86_64-unknown-linux-gnu.tar.gz
69+
tar xzf rustun-v1.0.0-x86_64-unknown-linux-gnu.tar.gz
70+
cd rustun-v1.0.0-x86_64-unknown-linux-gnu
8071

81-
### Supported Platforms
72+
# Make binaries executable
73+
chmod +x server client
74+
```
8275

83-
| Platform | Architecture | Target Triple | Notes |
84-
|----------|-------------|---------------|-------|
85-
| Linux | x86_64 | `x86_64-unknown-linux-gnu` | glibc |
86-
| Linux | x86_64 | `x86_64-unknown-linux-musl` | static binary |
87-
| Linux | ARM64 | `aarch64-unknown-linux-gnu` | glibc |
88-
| Linux | ARM64 | `aarch64-unknown-linux-musl` | static binary |
89-
| macOS | Intel | `x86_64-apple-darwin` | macOS 10.12+ |
90-
| macOS | Apple Silicon | `aarch64-apple-darwin` | M1/M2/M3 |
91-
| Windows | x86_64 | `x86_64-pc-windows-msvc` | MSVC runtime |
76+
**Windows:**
77+
```powershell
78+
# 1. Download rustun-v1.0.0-x86_64-pc-windows-msvc.zip from releases
79+
# 2. Extract to a directory
80+
# 3. Download Wintun from https://www.wintun.net/
81+
# 4. Extract wintun.dll to the same directory as client.exe
82+
```
9283

93-
### Quick Build for Current Platform
84+
### Quick Test
9485

86+
**Start Server:**
9587
```bash
96-
# Build for current platform only (faster)
97-
./build-quick.sh v1.0.0
88+
# Linux/macOS
89+
sudo ./server server.toml.example
9890

99-
# Or build single binary
100-
cargo build --release --bin server
101-
cargo build --release --bin client
91+
# Windows (as Administrator)
92+
.\server.exe server.toml.example
10293
```
10394

104-
For detailed build instructions, see [BUILD.md](BUILD.md).
95+
**Connect Client:**
96+
```bash
97+
# Linux/macOS
98+
sudo ./client -s SERVER_IP:8080 -i client-001
99+
100+
# Windows (as Administrator)
101+
.\client.exe -s SERVER_IP:8080 -i client-001
102+
```
105103

106104
## ⚙️ Configuration
107105

@@ -387,13 +385,18 @@ Frame Header (8 bytes):
387385

388386
**Issue: "Failed to initialize TUN device"**
389387
```bash
390-
# Solution: Run with elevated privileges
388+
# Linux/macOS: Run with elevated privileges
391389
sudo ./client -s SERVER:8080 -i client-001
392390

393391
# Or configure TUN permissions (Linux)
394392
sudo setcap cap_net_admin=eip ./client
395393
```
396394

395+
**Windows: "Wintun driver not found"**
396+
- Download Wintun from https://www.wintun.net/
397+
- Extract `wintun.dll` to the same directory as `client.exe`
398+
- Run as Administrator
399+
397400
**Issue: "Connection failed: Connection refused"**
398401
```bash
399402
# Check server is running
@@ -417,54 +420,38 @@ sudo ufw allow 8080/tcp
417420
- **CPU Usage**: ~5% per 100 Mbps throughput (Intel i7)
418421
- **Memory**: ~20 MB per client connection
419422

420-
## 🔨 Build Instructions
423+
## 🔨 Build from Source
421424

422-
### Quick Build
425+
> **Note**: For most users, we recommend downloading pre-built binaries from [Releases](https://github.com/smartethnet/rustun/releases). Only build from source if you need to modify the code or target an unsupported platform.
423426
424-
```bash
425-
# Build for current platform
426-
cargo build --release
427-
428-
# Or use the quick build script
429-
./build-quick.sh v1.0.0
430-
```
431-
432-
### Cross-Platform Build
433-
434-
Build for all supported platforms at once:
427+
### Prerequisites
435428

436-
```bash
437-
# Install required tools
438-
cargo install cross --git https://github.com/cross-rs/cross
439-
cargo install cargo-xwin
440-
441-
# Build all platforms
442-
./build.sh v1.0.0
443-
444-
# Output in dist/ directory:
445-
# - Linux (glibc & musl static)
446-
# - macOS (Intel & Apple Silicon)
447-
# - Windows (MSVC)
448-
# - SHA256 checksums
449-
```
429+
- Rust 1.70 or higher
430+
- Git
450431

451-
### Build Specific Platform
432+
### Build Steps
452433

453434
```bash
454-
# Linux (static, no dependencies)
455-
cross build --release --target x86_64-unknown-linux-musl
435+
# Clone the repository
436+
git clone https://github.com/smartethnet/rustun.git
437+
cd rustun
456438

457-
# macOS Apple Silicon
458-
cargo build --release --target aarch64-apple-darwin
439+
# Build release binaries
440+
cargo build --release
459441

460-
# Windows MSVC
461-
cargo xwin build --release --target x86_64-pc-windows-msvc
442+
# Binaries will be in target/release/
443+
# - server
444+
# - client
462445
```
463446

464-
For detailed build instructions, troubleshooting, and CI/CD integration, see [BUILD.md](BUILD.md).
447+
### Cross-Compilation
448+
449+
For cross-platform builds, see [BUILD.md](BUILD.md) for detailed instructions.
465450

466451
## 🗺️ Roadmap
467452

453+
- [ ] IPv6 support
454+
- [ ] P2P direct connection
468455
- [ ] Windows service support
469456
- [ ] systemd integration for Linux
470457
- [ ] Web-based management dashboard
@@ -477,14 +464,14 @@ For detailed build instructions, troubleshooting, and CI/CD integration, see [BU
477464
- [ ] Pre-built binary releases
478465
- [ ] Auto-update mechanism
479466

480-
## 📦 Binary Releases
467+
## 📦 Download
481468

482-
Pre-built binaries are available for:
469+
Pre-built binaries are available from [GitHub Releases](https://github.com/smartethnet/rustun/releases):
483470
- Linux (x86_64, ARM64, static musl builds)
484471
- macOS (Intel, Apple Silicon)
485472
- Windows (x86_64 MSVC)
486473

487-
Download from [Releases](https://github.com/ICKelin/rustun/releases) or build from source.
474+
**Windows users**: Remember to download [Wintun driver](https://www.wintun.net/) separately.
488475

489476
## 🤝 Contributing
490477

@@ -526,8 +513,8 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
526513

527514
## 📞 Contact
528515

529-
- Issues: [GitHub Issues](https://github.com/ICKelin/rustun/issues)
530-
- Discussions: [GitHub Discussions](https://github.com/ICKelin/rustun/discussions)
516+
- Issues: [GitHub Issues](https://github.com/smartethnet/rustun/issues)
517+
- Discussions: [GitHub Discussions](https://github.com/smartethnet/rustun/discussions)
531518

532519
---
533520

0 commit comments

Comments
 (0)