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 Legacy 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/)
  • Legacy UI Windows: Visual Studio / MSBuild, .NET Framework 4.8.x WinForms (App.Forms.Windows)
  • Legacy UI Linux: Mono + MSBuild, WinForms (App.Forms.Linux), plus mkbundle for portable packaging
  • Legacy 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 Legacy 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 legacy UI 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 Legacy 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.