// PROGRAMMING LANGUAGE
Go (Golang) - Version 1.22+
Uqda Network is written entirely in Go, chosen for its excellent concurrency support, strong standard library, and cross-platform capabilities.
// CRYPTOGRAPHY
Encryption Algorithms
| Algorithm |
Purpose |
Key Size |
Library |
ChaCha20-Poly1305 |
End-to-end encryption of all traffic |
256-bit |
golang.org/x/crypto |
Ed25519 |
Digital signatures and node identity |
256-bit |
crypto/ed25519 (Go stdlib) |
X25519 |
Key exchange (ephemeral keys) |
256-bit |
golang.org/x/crypto |
BLAKE2b |
Hashing for address derivation |
256-bit |
golang.org/x/crypto/blake2b |
// CORE DEPENDENCIES
Network & Routing
| Package |
Purpose |
Version |
github.com/Arceliar/ironwood |
Core routing protocol implementation |
v0.0.0-20241213013129 |
github.com/Arceliar/phony |
Actor model for concurrency |
v0.0.0-20220903101357 |
golang.org/x/net |
IPv6 networking, IP utilities |
v0.32.0 |
github.com/vishvananda/netlink |
Linux network interface management |
v1.3.0 |
github.com/wlynxg/anet |
Network abstraction layer |
v0.0.5 |
Transport Protocols
| Package |
Protocol |
Version |
github.com/quic-go/quic-go |
QUIC protocol support |
v0.48.2 |
github.com/coder/websocket |
WebSocket (WS/WSS) support |
v1.8.12 |
net (Go stdlib) |
TCP/TLS connections |
Built-in |
Virtual Network Interfaces
| Package |
Platform |
Version |
golang.zx2c4.com/wireguard |
Cross-platform TUN interface |
v0.0.0-20231211153847 |
golang.zx2c4.com/wintun |
Windows TUN interface |
v0.0.0-20230126152724 |
golang.zx2c4.com/wireguard/windows |
Windows-specific utilities |
v0.5.3 |
Utilities & Tools
| Package |
Purpose |
Version |
github.com/gologme/log |
Structured logging |
v1.3.0 |
github.com/hjson/hjson-go/v4 |
Configuration file parsing (HJSON) |
v4.4.0 |
github.com/cheggaaa/pb/v3 |
Progress bars |
v3.1.5 |
github.com/olekukonko/tablewriter |
Table formatting for CLI |
v0.0.5 |
github.com/hashicorp/go-syslog |
Syslog integration |
v1.0.0 |
github.com/kardianos/minwinsvc |
Windows service management |
v1.0.2 |
suah.dev/protect |
Security hardening (OpenBSD pledge) |
v1.2.4 |
Data Structures
| Package |
Purpose |
Version |
github.com/bits-and-blooms/bloom/v3 |
Bloom filters for routing |
v3.7.0 |
github.com/bits-and-blooms/bitset |
Bit set operations |
v1.13.0 |
// SYSTEM REQUIREMENTS
Supported Platforms
| Platform |
Architecture |
Minimum Version |
| Linux |
x86_64, ARM64 |
Kernel 3.x+ |
| Windows |
x86_64, ARM64 |
Windows 7+ |
| macOS |
Intel, Apple Silicon |
macOS 10.12+ |
| FreeBSD |
x86_64, ARM64 |
FreeBSD 12+ (experimental) |
// BUILD TOOLS
- Go Toolchain - Version 1.22 or later
- Git - For version control
- Make - Build automation (optional)
- Cross-compilation - Supported via GOOS/GOARCH
// PROTOCOL SPECIFICATIONS
| Component |
Specification |
| Protocol Version |
0.5 (compatible with Yggdrasil v0.5) |
| IPv6 Address Range |
0200::/7 |
| Encryption |
ChaCha20-Poly1305 (AEAD mode) |
| Signing |
Ed25519 (256-bit) |
| Key Exchange |
X25519 (ephemeral) |
| Routing |
DHT (Distance Vector) + Spanning Tree |
| Transport |
TCP, TLS, QUIC, WebSocket (WS/WSS) |
| MTU |
Up to 65535 bytes |
// LICENSE
Uqda Network is released under the LGPLv3 license.
All dependencies maintain their respective licenses. Most are open-source and compatible with LGPLv3.
// SOURCE CODE
Complete source code and dependency information: