Docs
Doc / Compare / n2n Vs. OmniEdge
n2n vs. OmniEdge
Important: OmniEdge v2.x Migration
OmniEdge v2.x is a complete rewrite that no longer uses n2n. The legacy Go/n2n-based OmniEdge v1.x has been replaced with a pure Rust implementation using the WireGuard-based OmniNervous protocol.
| Aspect | OmniEdge v1.x (Legacy) | OmniEdge v2.x (Current) |
|---|---|---|
| Language | Go + C (n2n) | Pure Rust |
| Protocol | n2n supernode/edge | OmniNervous (WireGuard-based) |
| Encryption | Twofish, AES128, ChaCha20 | ChaCha20-Poly1305 |
| License | GPL-3.0 (n2n) | Apache-2.0 / MIT |
| Repository | omniedge-legacy | omniedge |
If you're still using n2n directly or OmniEdge v1.x, we recommend upgrading to v2.x for better performance, security, and features.
What is n2n?
n2n is a lightweight VPN that creates virtual networks bypassing intermediate firewalls. It uses a peer-to-peer architecture with:
- edge: Node software that runs on each device
- supernode: Server that coordinates peer discovery and relays traffic when needed
OmniEdge v1.x was built on top of n2n, providing a managed service layer with authentication, dashboard, and cross-platform apps.
Why We Moved Away from n2n
While n2n served us well, we rewrote OmniEdge in Rust for:
| Reason | n2n | OmniEdge v2.x |
|---|---|---|
| Memory safety | C (manual memory management) | Rust (compile-time safety) |
| Modern crypto | Twofish, AES | WireGuard (ChaCha20-Poly1305, Curve25519) |
| NAT traversal | Basic | Advanced (STUN, TURN, UPnP, NAT-PMP) |
| Performance | Good | Industrial-grade (Cpk 2.92) |
| Extensibility | Limited | WASM plugin system |
| License | GPL-3.0 | Apache-2.0 / MIT |
n2n vs. OmniEdge Comparison
Setup
n2n requires manual configuration:
# On the supernode server
supernode -p 7654
# On each edge device (manual IP, key, supernode address)
edge -c mynetwork -k mysecretkey -a 10.0.0.1 -l supernode.example.com:7654
edge -c mynetwork -k mysecretkey -a 10.0.0.2 -l supernode.example.com:7654You need to:
- Remember network names, keys, and IPs for each device
- Create configuration files for each device
- Manage supernodes manually
OmniEdge is zero-config:
# Install and connect (all configuration handled automatically)
curl -fsSL https://raw.githubusercontent.com/omniedgeio/omniedge/main/scripts/omniedge-install.sh | bash
sudo omniedge startThe dashboard manages:
- Network names and IPs
- Device authentication
- Security keys
- Multiple virtual networks
Features Comparison
| Feature | n2n | OmniEdge v2.x |
|---|---|---|
| Central management | Manual | Dashboard |
| Authentication | Shared secret | OAuth, SSO, Security Keys |
| Multi-network | Manual config | Built-in |
| NAT traversal | UDP hole punching | STUN/TURN + relay fallback |
| Symmetric NAT | Limited | Full support (relay) |
| Exit node | No | Yes |
| Plugin system | No | Yes (WASM) |
| Desktop app | No | Yes (Tauri) |
| Mobile apps | Community | Coming Soon |
Performance
n2n performance varies by encryption cipher and network conditions.
OmniEdge v2.x has been validated through 50-run longitudinal testing:
| Metric | OmniEdge v2.x | Notes |
|---|---|---|
| Latency overhead | +0.3ms | Minimal encryption cost |
| Latency stability (Cpk) | 2.92 (6-Sigma) | Industrial-grade |
| Throughput | 3470 Mbit/s | On 4970 Mbit/s native network |
| Jitter | 0.057ms StdDev | Predictable, bounded |
Security
| Aspect | n2n | OmniEdge v2.x |
|---|---|---|
| Encryption | Twofish, AES-128, ChaCha20 | ChaCha20-Poly1305 (WireGuard) |
| Key exchange | Static shared secret | Noise protocol (Curve25519) |
| Forward secrecy | No | Yes (session keys rotate) |
| Authentication | Password | OAuth2, SAML, Security Keys |
When to Use n2n
n2n is still useful if you:
- Need a lightweight, self-hosted solution with no external dependencies
- Are comfortable with manual configuration
- Need GPL-licensed software
- Don't require advanced NAT traversal or management features
When to Use OmniEdge
OmniEdge v2.x is better if you:
- Want zero-config setup with a management dashboard
- Need reliable connectivity through challenging NAT environments
- Require industrial-grade latency stability (robotics, teleoperation)
- Want modern WireGuard-based encryption
- Need plugin extensibility (WASM)
- Prefer permissive licensing (Apache-2.0/MIT)
Migrating from n2n or OmniEdge v1.x
- Uninstall the legacy version
- Install OmniEdge v2.x:
curl -fsSL https://raw.githubusercontent.com/omniedgeio/omniedge/main/scripts/omniedge-install.sh | bash - Connect to your network:
sudo omniedge start
All existing networks and devices in your OmniEdge dashboard will work with v2.x.
Self-Hosted Options
n2n: Run your own supernode.
OmniEdge v2.x: Run in nucleus mode for air-gapped environments:
# Self-hosted signaling server
sudo omniedge start --mode nucleus --port 51821 --secret "YourLabSecret123"If you have more questions, feel free to discuss.
On This Page