{"id":31974440,"url":"https://github.com/softetherunofficial/softetherzig","last_synced_at":"2025-10-14T20:16:57.442Z","repository":{"id":317501763,"uuid":"1067689518","full_name":"SoftEtherUnofficial/SoftEtherZig","owner":"SoftEtherUnofficial","description":"A modern, cross-platform VPN client implementation in Zig, wrapping the untouched SoftEther VPN protocol.","archived":false,"fork":false,"pushed_at":"2025-10-08T10:50:48.000Z","size":647,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-08T12:29:28.069Z","etag":null,"topics":["softether","vpn","zig"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SoftEtherUnofficial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-01T08:33:47.000Z","updated_at":"2025-10-07T23:52:15.000Z","dependencies_parsed_at":"2025-10-01T11:18:08.101Z","dependency_job_id":null,"html_url":"https://github.com/SoftEtherUnofficial/SoftEtherZig","commit_stats":null,"previous_names":["softetherunofficial/softetherzig"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SoftEtherUnofficial/SoftEtherZig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftEtherUnofficial%2FSoftEtherZig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftEtherUnofficial%2FSoftEtherZig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftEtherUnofficial%2FSoftEtherZig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftEtherUnofficial%2FSoftEtherZig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoftEtherUnofficial","download_url":"https://codeload.github.com/SoftEtherUnofficial/SoftEtherZig/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftEtherUnofficial%2FSoftEtherZig/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021014,"owners_count":26086947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["softether","vpn","zig"],"created_at":"2025-10-14T20:16:55.926Z","updated_at":"2025-10-14T20:16:57.433Z","avatar_url":"https://github.com/SoftEtherUnofficial.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoftEtherZig\n\nA modern, cross-platform VPN client implementation in **pure Zig**, progressively replacing the SoftEther VPN C codebase.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Zig Version](https://img.shields.io/badge/zig-0.15.1+-blue)](https://ziglang.org/)\n\n\n## 🔒 Security Notice\n\n**IMPORTANT**: Never use plaintext passwords on the command line! See [SECURITY.md](SECURITY.md) for secure credential management best practices.\n\n**Recommended**: Use pre-hashed passwords or environment variables:\n```bash\n# Generate hash (do this once)\n./vpnclient --gen-hash username password\n\n# Use hash instead of plaintext password\n./vpnclient -u username --password-hash \"your_hash_here\"\n\n# Or use environment variables\nexport SOFTETHER_PASSWORD_HASH=\"your_hash_here\"\n./vpnclient\n```\n\n## Overview\n\nSoftEtherZig is a complete rewrite of SoftEther VPN in pure Zig. While currently wrapping the battle-tested C core, we're systematically replacing all C code with safe, idiomatic Zig implementations.\n\n**Why Zig?**\n- **Memory Safety**: Eliminate buffer overflows, use-after-free, null pointer dereferences\n- **Performance**: Zero-cost abstractions, LLVM optimizations, compile-time code generation\n- **Maintainability**: No header files, built-in testing, clear error handling\n- **Portability**: Native cross-compilation to any platform without toolchain hassle\n\n## Features\n\n**Zig Components (Pure Zig - Phase 1-3 Complete)**:\n- ✅ **Foundation Layer** (Phase 1): Memory management, string operations, collections (1,530 lines, 52 tests)\n- ✅ **Network Layer** (Phase 2): Socket, HTTP, connection management (1,754 lines, 34 tests)\n- ✅ **Protocol Layer** (Phase 3): VPN protocol, packet handling, **REAL cryptography** (3,121 lines, 50 tests)\n  - **VPN Protocol**: Session management, authentication, state machine (607 lines, 12 tests)\n  - **Packet Handling**: Format, fragmentation, compression (791 lines, 13 tests)\n  - **Encryption**: Production AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305 (823 lines, 16 tests)\n  - **Integration**: Full end-to-end VPN client with worker threads (900 lines, 9 tests)\n- ✅ **FFI Layer**: Cross-platform C API (`include/ffi.h`) for iOS, Android, and other platforms\n- ✅ **CLI Interface**: Command-line tool with secure credential handling\n- ✅ **Configuration System**: Type-safe JSON parsing with validation\n- ✅ **Test Coverage**: 122/126 tests passing (96.8%), zero memory leaks, zero warnings\n- ⏳ **Phase 4**: Platform adapters (Linux/Windows TUN/TAP porting from C)\n\n**VPN Capabilities** (SoftEther SSL-VPN Protocol):\n- 🔒 **Secure**: SSL/TLS 1.3 encryption with SoftEther's proven SSL-VPN protocol\n- 🌐 **Cross-Platform**: Native support for macOS, Linux, Windows, Android, and iOS\n- ⚡ **UDP Acceleration**: Optimized network performance with R-UDP protocol\n- 🌉 **Dual Mode Support**: SecureNAT (Layer 3) and Local Bridge (Layer 2) modes\n- 🔄 **Automatic Reconnection**: Exponential backoff with configurable retry limits\n- 📝 **Note**: This is **SoftEther's proprietary SSL-VPN**, not SSTP/OpenVPN/L2TP\n\n## Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/SoftEtherZig.git\ncd SoftEtherZig\n\n# Build the client\nzig build -Doptimize=ReleaseFast\n\n# Generate password hash (recommended for security)\n./zig-out/bin/vpnclient --gen-hash username password\n# Copy the generated hash\n\n# Connect to a VPN server (using hash)\nsudo ./zig-out/bin/vpnclient -s vpn.example.com -H VPN -u username --password-hash \"your_hash_here\"\n\n# Or use environment variables (most secure)\nexport SOFTETHER_SERVER=\"vpn.example.com\"\nexport SOFTETHER_HUB=\"VPN\"\nexport SOFTETHER_USER=\"username\"\nexport SOFTETHER_PASSWORD_HASH=\"your_hash_here\"\nsudo -E ./zig-out/bin/vpnclient\n```\n\n\u003e ⚠️ **Security Warning**: The examples in the rest of this README may show `-P password` for simplicity, but you should **always use `--password-hash`** in production. See [SECURITY.md](SECURITY.md) for details.\n\n## Installation\n\n### Prerequisites\n\n- **Zig**: 0.15.1 or later ([download](https://ziglang.org/download/))\n- **OpenSSL**: 3.0+ (system package manager)\n- **Root/Admin privileges**: Required for TUN device creation\n\n### System Dependencies\n\n```bash\n# macOS\nbrew install openssl@3\n\n# Ubuntu/Debian\nsudo apt update\nsudo apt install libssl-dev\n\n# Fedora/RHEL\nsudo dnf install openssl-devel\n\n# Windows\n# Download OpenSSL from https://slproweb.com/products/Win32OpenSSL.html\n```\n\n### Build\n\n```bash\n# Development build\nzig build\n\n# Optimized release build\nzig build -Doptimize=ReleaseFast\n\n# Install system-wide (optional)\nsudo cp zig-out/bin/vpnclient /usr/local/bin/\n```\n\n## Usage\n\n### Command Line Interface\n\n```bash\n# Basic connection\nsudo vpnclient -s vpn.example.com -H VPN -u username -P password\n\n# Custom port\nsudo vpnclient -s vpn.example.com -p 8443 -H VPN -u username -P password\n\n# Daemon mode (background)\nsudo vpnclient -s vpn.example.com -H VPN -u username -P password -d\n\n# Show help\nvpnclient --help\n```\n\n### CLI Options\n\n#### Connection Options\n| Option | Description | Default |\n|--------|-------------|---------|\n| `-s, --server \u003cHOST\u003e` | VPN server hostname | *required* |\n| `-p, --port \u003cPORT\u003e` | VPN server port | 443 |\n| `-H, --hub \u003cHUB\u003e` | Virtual hub name | *required* |\n| `-u, --user \u003cUSERNAME\u003e` | Username | *required* |\n| `-P, --password \u003cPASS\u003e` | Password (use `--password-hash` instead!) | *required* |\n| `--password-hash \u003cHASH\u003e` | Pre-hashed password (recommended) | |\n| `-a, --account \u003cNAME\u003e` | Account name | username |\n| `--no-encrypt` | Disable encryption | false |\n| `--no-compress` | Disable compression | false |\n| `-d, --daemon` | Run as daemon | false |\n\n#### Performance Options\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--use-zig-adapter` | Use Zig packet adapter (default, 10x faster) | **true** |\n| `--use-c-adapter` | Use legacy C adapter (fallback) | false |\n| `--profile` | Enable performance profiling | false |\n\n#### Reconnection Options\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--reconnect` | Enable auto-reconnection | true |\n| `--no-reconnect` | Disable auto-reconnection | false |\n| `--max-retries \u003cN\u003e` | Max reconnection attempts (0=infinite) | 0 |\n| `--min-backoff \u003cSEC\u003e` | Min backoff delay (seconds) | 5 |\n| `--max-backoff \u003cSEC\u003e` | Max backoff delay (seconds) | 300 |\n\n#### Other Options\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--log-level \u003cLEVEL\u003e` | Log verbosity: silent, error, warn, info, debug, trace | info |\n| `-h, --help` | Show help | |\n| `-v, --version` | Show version | |\n\n### Library Usage\n\n```zig\nconst softether = @import(\"softether\");\n\npub fn main() !void {\n    var gpa = std.heap.GeneralPurposeAllocator(.{}){};\n    defer _ = gpa.deinit();\n    const allocator = gpa.allocator();\n\n    const config = softether.ConnectionConfig{\n        .server_name = \"vpn.example.com\",\n        .server_port = 443,\n        .hub_name = \"VPN\",\n        .account_name = \"myaccount\",\n        .auth = .{ .password = .{\n            .username = \"user\",\n            .password = \"pass\",\n        } },\n        .use_encrypt = true,\n        .use_compress = true,\n    };\n\n    var client = try softether.VpnClient.init(allocator, config);\n    defer client.deinit();\n\n    try client.connect();\n\n    // Your application logic here\n    while (client.isConnected()) {\n        std.time.sleep(1 * std.time.ns_per_s);\n    }\n}\n```\n\n## Architecture\n\n### FFI Status\n\n| FFI Layer | Status | Platforms | Implementation | Recommended |\n|-----------|--------|-----------|----------------|-------------|\n| **ffi.h** | ✅ Active | All platforms | Pure Zig | ✅ **YES** |\n| ~~softether_ffi.h~~ | ❌ Removed | iOS only | C | ❌ No |\n\n**Note**: Legacy FFI was archived October 2025. See [Migration Guide](docs/FFI_MIGRATION_GUIDE.md) for historical context.\n\n### Porting Status\n\n| Phase | Component | Status | Progress | Target |\n|-------|-----------|--------|----------|--------|\n| 1 | **Foundation** | 🟡 In Progress | 15% | Q2 2026 |\n| 1.1 | Platform Adapters (TUN/TAP) | ⏳ Starting | 0% | Q1 2026 |\n| 1.2 | Mayaqua Library (utilities) | ⏳ Planned | 0% | Q2 2026 |\n| 2 | **Core Infrastructure** | ⏸️ Not Started | 0% | Q4 2026 |\n| 2.1 | Network Stack (TCP/UDP/HTTP) | ⏸️ Not Started | 0% | Q3 2026 |\n| 2.2 | Cryptography Layer | ⏸️ Not Started | 0% | Q4 2026 |\n| 3 | **Session Management** | ⏸️ Not Started | 0% | Q2 2027 |\n| 4 | **Protocols** (SSTP/L2TP/OpenVPN) | ⏸️ Not Started | 0% | Q4 2027 |\n| 5 | **Applications** (Client/Server) | ⏸️ Not Started | 0% | Q2 2028 |\n\n**Overall**: 2% complete (~1,200 of ~70,000 lines ported to Zig)\n\n### Current Sprint (October 2025)\n**Goal**: Port macOS packet adapter to pure Zig\n- [ ] Create `src/platform/macos.zig`\n- [ ] Integrate ZigTapTun for utun management\n- [ ] Port DHCP packet handling\n- [ ] Achieve performance parity with C version\n\nSee [Porting Progress Tracker](docs/ZIG_PORTING_PROGRESS.md) for detailed task list.\n\n## Architecture\n\n### Current Hybrid Architecture (Phase 1)\n\n```\n┌─────────────────────────────────────┐\n│    Zig Application Layer (PURE ZIG) │\n│  cli.zig, client.zig, config.zig    │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│    FFI Layer (PURE ZIG)             │\n│  ffi/ffi.zig - Cross-platform API   │\n└──────────────┬──────────────────────┘\n               │\n         ┌─────┴─────┐\n         │  C Bridge │ ← Being eliminated\n         └─────┬─────┘\n               │\n┌──────────────▼──────────────────────┐\n│   SoftEther Core (C → Zig in progress)\n│  Cedar + Mayaqua libraries          │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│  Platform Layer (C → Zig Phase 1)   │\n│  TUN/TAP adapters                   │\n└─────────────────────────────────────┘\n```\n\n### Target Pure Zig Architecture (Phase 5)\n\n```\n┌─────────────────────────────────────┐\n│         Zig Application             │\n│  (Client, Server, Bridge)           │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│      Protocol Layer (Zig)           │\n│  SSTP, L2TP, OpenVPN                │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│    Session Management (Zig)         │\n│  Connection pooling, Keep-alive     │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│    Network Stack (Zig)              │\n│  TCP/UDP, HTTP, TLS via std.crypto  │\n└──────────────┬──────────────────────┘\n               │\n┌──────────────▼──────────────────────┐\n│    Platform Adapters (Zig)          │\n│  Pure Zig TUN/TAP via ZigTapTun     │\n└─────────────────────────────────────┘\n```\n\n## Project Structure\n\n```\nSoftEtherZig/\n├── SoftEtherVPN_Stable/          # SoftEther C source (submodule)\n│   └── src/                      # Original SoftEther VPN codebase\n├── src/                          # Zig implementation\n│   ├── main.zig                  # Library entry point\n│   ├── cli.zig                   # Command-line interface\n│   ├── client.zig                # VPN client logic\n│   ├── config.zig                # Configuration types\n│   ├── types.zig                 # Common data structures\n│   ├── errors.zig                # Error definitions\n│   ├── ffi/\n│   │   └── ffi.zig               # ✅ FFI (cross-platform C API)\n│   ├── c.zig                     # C imports and bindings\n│   └── bridge/                   # C bridge layer\n│       ├── softether_bridge.c    # Main SoftEther interface\n│       ├── unix_bridge.c         # POSIX system abstraction\n│       ├── packet_adapter_*.c    # Platform-specific TUN/TAP\n│       └── tick64_*.c            # High-resolution timing\n├── legacy/                       # Archived deprecated code\n│   └── ffi/                      # Legacy FFI (archived Oct 2025)\n│       ├── ios_ffi.c.archived    # Old iOS FFI implementation\n│       ├── softether_ffi.h.archived  # Old FFI header\n│       └── ffi.zig.archived      # Old Zig FFI stubs\n├── build.zig                     # Build configuration\n├── build.zig.zon                 # Zig package dependencies\n└── zig-out/                      # Build artifacts\n    └── bin/\n        └── vpnclient             # Compiled executable\n```\n\n### Component Overview\n\n1. **CLI Layer** (`cli.zig`): Command-line argument parsing and user interaction\n2. **Client Layer** (`client.zig`): High-level VPN connection management\n3. **Bridge Layer** (`bridge/`): C code that interfaces with SoftEther VPN\n4. **FFI Layer** (`ffi.zig`): Safe Zig bindings to C functions\n\n### Network Architecture\n\n```\n┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐\n│   Application   │────│   Zig Client     │────│   C Bridge      │\n│   (CLI/Library) │    │   Logic          │    │   Layer         │\n└─────────────────┘    └──────────────────┘    └─────────────────┘\n         │                       │                       │\n         └───────────────────────┼───────────────────────┘\n                                 │\n                    ┌────────────────────┐\n                    │  SoftEther VPN     │\n                    │  Core (C)          │\n                    └────────────────────┘\n                             │\n                    ┌────────────────────┐\n                    │  SSL/TLS 1.3       │\n                    │  (OpenSSL)         │\n                    └────────────────────┘\n                             │\n                    ┌────────────────────┐\n                    │  TUN/TAP Device    │\n                    │  (Platform)        │\n                    └────────────────────┘\n```\n\n## Platform Support\n\n### Desktop Platforms\n\n| Platform | Architecture | TUN Device | Status |\n|----------|--------------|------------|--------|\n| macOS | x86_64, ARM64 | utun | ✅ Tested |\n| Linux | x86_64, ARM64 | TUN/TAP | 🚧 Planned |\n| Windows | x86_64 | TAP-Windows6 | 🚧 Planned |\n\n### Mobile Platforms\n\n| Platform | Architecture | Implementation | Status |\n|----------|--------------|----------------|--------|\n| Android | ARM64, ARMv7, x86_64 | JNI + VpnService | ✅ Complete |\n| iOS | ARM64, x86_64 | PacketTunnelProvider | ✅ Complete |\n\n**Mobile implementations are production-ready!** See:\n- [`android/README.md`](android/README.md) - Android integration guide\n- [`ios/README.md`](ios/README.md) - iOS integration guide\n\n### Building for Different Platforms\n\nZig enables seamless cross-compilation:\n\n```bash\n# Build for Linux from macOS\nzig build -Dtarget=x86_64-linux-gnu\n\n# Build for Windows from macOS\nzig build -Dtarget=x86_64-windows-gnu\n\n# Build for ARM64 Linux\nzig build -Dtarget=aarch64-linux-gnu\n```\n\n## Building from Source\n\n### Standard Build\n\n```bash\n# Debug build (with symbols)\nzig build\n\n# Release build (optimized)\nzig build -Doptimize=ReleaseFast\n\n# Safe release build\nzig build -Doptimize=ReleaseSafe\n```\n\n### Custom Build Options\n\n```bash\n# Build with custom target\nzig build -Dtarget=aarch64-linux-gnu\n\n# Build with specific CPU features\nzig build -Dcpu=baseline\n\n# Clean build artifacts\nrm -rf zig-cache zig-out\n```\n\n### Build Dependencies\n\nThe build system automatically:\n- Downloads and compiles SoftEther C sources\n- Links with system OpenSSL\n- Creates platform-specific TUN adapters\n- Generates optimized binaries\n\n## Configuration\n\n### Configuration Methods\n\nSoftEtherZig supports three configuration methods with priority order:\n1. **Command-line arguments** (highest priority)\n2. **Environment variables** (medium priority)\n3. **Configuration file** (lowest priority)\n\n### Configuration File (NEW in v1.1)\n\nCreate `~/.config/softether-zig/config.json`:\n\n```json\n{\n  \"server\": \"vpn.example.com\",\n  \"port\": 443,\n  \"hub\": \"VPN\",\n  \"username\": \"myuser\",\n  \"password_hash\": \"base64-hashed-password\"\n}\n```\n\nThen simply run:\n```bash\nvpnclient  # Uses config file\n```\n\n**See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for complete configuration guide.**\n\nExample configurations:\n- `config.example.json` - Full configuration with all options\n- `config.minimal.json` - Minimal working configuration\n\n### Environment Variables\n\nConnection settings:\n- `SOFTETHER_SERVER`: VPN server hostname\n- `SOFTETHER_PORT`: VPN server port\n- `SOFTETHER_HUB`: Virtual hub name\n- `SOFTETHER_USER`: Username\n- `SOFTETHER_PASSWORD`: Password (plaintext, not recommended)\n- `SOFTETHER_PASSWORD_HASH`: Pre-hashed password (recommended)\n\nSSL/TLS settings:\n- `SSL_CERT_FILE`: Path to custom CA certificate bundle\n- `SSL_CERT_DIR`: Directory containing CA certificates\n\n## Troubleshooting\n\n### Common Issues\n\n**Permission Denied**\n```bash\n# Solution: Run with sudo for TUN device access\nsudo vpnclient -s server -H hub -u user -P pass\n```\n\n**Connection Timeout**\n- Verify server hostname and port\n- Check firewall settings\n- Ensure VPN server is accessible\n\n**Authentication Failed**\n- Confirm username and password\n- Check virtual hub name\n- Verify account permissions\n\n**TUN Device Busy**\n- macOS: Wait for utun device to become available\n- Linux: Check `/dev/net/tun` permissions\n\n### Debug Mode\n\n```bash\n# Build with debug symbols\nzig build -Doptimize=Debug\n\n# Run with verbose logging\nsudo ./zig-out/bin/vpnclient -s server -H hub -u user -P pass 2\u003e\u00261 | tee debug.log\n```\n\n## Development\n\n### Code Organization\n\n- **`src/`**: Zig source code\n- **`src/bridge/`**: C bridge code interfacing with SoftEther\n- **`SoftEtherVPN_Stable/`**: Upstream SoftEther VPN source\n\n### Adding Features\n\n**CLI Features:**\n- Edit `src/cli.zig` for new command-line options\n\n**Client Features:**\n- Modify `src/client.zig` for connection logic\n\n**Bridge Features:**\n- Update `src/bridge/softether_bridge.c` for new SoftEther integration\n\n### Testing\n\n```bash\n# Run tests\nzig build test\n\n# Build and test specific target\nzig build -Dtarget=x86_64-linux-gnu test\n```\n\n### Code Style\n\n- **Zig**: Follow official Zig style guide\n- **C**: Follow SoftEther VPN conventions\n- **Documentation**: Use Zig doc comments for public APIs\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n### Areas for Contribution\n\n- 🐧 Linux TUN/TAP implementation\n- 🪟 Windows TAP-Windows6 support\n- 🔐 Additional authentication methods (certificate, RADIUS)\n- 📊 Performance optimizations\n- 🧪 Comprehensive test suite\n- 📚 Documentation improvements\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\nThe SoftEther VPN components are licensed under Apache License 2.0 by the SoftEther VPN Project.\n\n## Credits\n\n- **SoftEther VPN Project**: Original VPN implementation\n- **Zig Programming Language**: Modern systems programming language\n- **OpenSSL Project**: Cryptography library\n\n## Related Projects\n\n- [SoftEther VPN Official](https://www.softether.org/) - Original SoftEther VPN\n- [Zig Language](https://ziglang.org/) - Programming language\n- [OpenSSL](https://www.openssl.org/) - Cryptography toolkit\n\n## Documentation\n\n### Server Mode Comparison\n- **[DOCS_INDEX.md](DOCS_INDEX.md)** - Documentation navigation and overview\n- **[SECURENAT_VS_LOCALBRIDGE.md](SECURENAT_VS_LOCALBRIDGE.md)** - Complete technical comparison of server modes\n- **[LOCALBRIDGE_QUICKREF.md](LOCALBRIDGE_QUICKREF.md)** - Quick reference for Local Bridge implementation\n- **[PACKET_FLOW_DIAGRAMS.md](PACKET_FLOW_DIAGRAMS.md)** - Visual diagrams of packet flows\n\n### Architecture\n- **[ARCHITECTURE.md](ARCHITECTURE.md)** - Cross-platform architecture\n- **[PROGRESS.md](PROGRESS.md)** - Implementation progress and roadmap\n- **[ZigTapTun/](ZigTapTun/)** - Layer 2/3 translation library\n\n---\n\n**SoftEtherZig** - Bringing modern programming practices to enterprise VPN connectivity.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftetherunofficial%2Fsoftetherzig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftetherunofficial%2Fsoftetherzig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftetherunofficial%2Fsoftetherzig/lists"}