Build from source code

There are two different projects:

  • Mobile - Android
  • Desktop - Windows / Linux / MacOS

Mobile Edition (Android)

Desktop Edition (Windows / Linux / MacOS)

Sources are hosted on GitHub: https://github.com/AirVPN/Eddie

This page covers building the CLI and the desktop UI (WinForms on Windows/Linux, Cocoa on MacOS). Prebuilt helpers (OpenVPN, WireGuard tools, stunnel, and so on) live under /deploy/ in the tree. See Libraries and Tools.

Some packages ship those binaries (portable, AppImage, and similar). Distro packages (for example Debian or OpenSUSE) may expect tools from the system instead.

At runtime Eddie uses tools next to the executable when present, otherwise searches the system, or paths you set with options such as path.tools.

Toolchain overview

  • CLI (all OS): .NET SDK 10, dotnet publish, self-contained
  • Elevated helper: C++ (platform projects under src/)
  • UI Windows: Visual Studio / MSBuild, .NET Framework 4.8.x WinForms (App.Forms.Windows)
  • UI Linux: Mono + MSBuild, WinForms (App.Forms.Linux), plus mkbundle for portable packaging
  • UI MacOS: Mono / MSBuild for Xamarin Cocoa (App.Cocoa.MacOS), plus Xcode for native bits

Exact package lists change with the distro and Visual Studio workload; use a recent .NET 10 SDK and a C++ desktop workload where native projects must compile.

Desktop - General build steps

Release-style packages are built from /repository/.

  • build_all_windows.bat, build_all_linux.sh, build_all_macos.sh build the usual published set
  • Or call a specific script, for example:

- Linux portable CLI: repository/linux_portable/build.sh cli l - Linux portable UI: repository/linux_portable/build.sh ui l - Windows portable: repository/windows_portable/build.bat cli|ui <arch> <os> l - MacOS portable: repository/macos_portable/build.sh cli|ui <arch> <varos> l

The last argument l selects the WinForms/Cocoa UI build line (as opposed to other internal build lines).

Outputs are written under repository/files/.

For day-to-day development, open the solutions under src/ in Visual Studio (Windows) or use dotnet / MSBuild for the CLI and desktop UI projects on each OS.

Additional notes

  • Build/deploy scripts can sign, notarize, and deploy when signing material is present; those steps are skipped without keys.