Docs
Doc / Build
Build OmniEdge from Source
OmniEdge v2.x is a complete rewrite in Rust, providing memory safety, high performance, and cross-platform support.
Repository Structure
github.com/omniedgeio/omniedge (monorepo)
├── crates/
│ ├── omni-cli/ # CLI application
│ ├── omni-tun/ # TUN interface abstraction
│ ├── omni-helper/ # Privileged helper service
│ └── omni-plugin/ # WASM plugin system
├── apps/
│ └── desktop/ # Tauri v2 + React desktop app
├── scripts/ # Build and install scripts
└── examples/
└── plugins/ # Example WASM pluginsBuild Guides
Core Components
Mobile & Embedded (Coming Soon)
Plugin Development
- WASM Plugins - Build custom plugins
Prerequisites
Rust Toolchain
All platforms require Rust 1.70 or later:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Verify installation
rustc --version # Should be 1.70+
cargo --versionDesktop App Requirements
For building the Tauri v2 desktop application:
- Node.js 18+ and npm
- Platform-specific requirements (see platform guides)
Quick Build
CLI Only
git clone https://github.com/omniedgeio/omniedge.git
cd omniedge
cargo build --release -p omni-cli
# Binary at: target/release/omniedge (or omniedge.exe on Windows)Desktop App
git clone https://github.com/omniedgeio/omniedge.git
cd omniedge/apps/desktop
npm install
npm run tauri build
# Installers at: apps/desktop/src-tauri/target/release/bundle/Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ OmniEdge v2.x Architecture │
├─────────────────────────────────────────────────────────────────┤
│ Desktop App (Tauri v2) │ CLI (omni-cli) │
│ ┌───────────────────────┐ │ ┌───────────────────────────┐ │
│ │ React 19 + TypeScript │ │ │ Rust Binary │ │
│ │ Vite Build │ │ │ - start/stop/status │ │
│ └───────────┬───────────┘ │ │ - plugin management │ │
│ │ │ │ - config commands │ │
│ ┌───────────▼───────────┐ │ └───────────┬───────────────┘ │
│ │ Tauri v2 Rust Core │ │ │ │
│ └───────────┬───────────┘ │ │ │
├──────────────┼──────────────┴──────────────┼───────────────────┤
│ │ Shared Rust Crates │ │
│ ┌───────────▼─────────────────────────────▼───────────────┐ │
│ │ OmniNervous │ │
│ │ (WireGuard-based P2P protocol with NAT traversal) │ │
│ └───────────────────────────┬─────────────────────────────┘ │
│ ┌───────────────────────────▼─────────────────────────────┐ │
│ │ omni-tun │ │
│ │ (Cross-platform TUN interface) │ │
│ └───────────────────────────┬─────────────────────────────┘ │
│ ┌───────────────────────────▼─────────────────────────────┐ │
│ │ omni-helper │ │
│ │ (Privileged operations via IPC) │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘V1.x Legacy Builds
For legacy Go/n2n based builds (v1.x), see the archived repositories:
- omniedge-cli (Go) - Archived
- omniedge-windows (Qt) - Archived
- omniedge-macOS (Xcode) - Archived
- omniedge-android - Archived
- omniedge-iOS - Archived
If you have more questions, feel free to discuss.
On This Page