System Dependencies Overview

Learn about the system-level dependencies required to build Tauri v2 apps on Linux, macOS, and Windows, and why each platform needs specific libraries and tools

Every Tauri application is a native binary that links against libraries provided by the operating system. Before you can compile and run a Tauri project, your development machine must have a few platform‑specific tools and libraries installed. This page explains what those dependencies are, why they exist, and how they differ across Linux, macOS, and Windows. The detailed step‑by‑step installation guides for each operating system are covered in the subsections that follow.

What Are System Dependencies?

System dependencies are software components that live outside your project’s code but are required to turn that code into a working application. In the context of Tauri, they fall into three categories:

  • Web rendering libraries – Tauri embeds a system‑provided webview (WebKitGTK on Linux, WKWebView on macOS, WebView2 on Windows) instead of bundling a full browser engine. Your system must supply the matching development files.
  • Build toolchains – The Rust compiler needs a C/C++ compiler and related tools to compile native code. On Linux this means build-essential or equivalent; on macOS it means Xcode Command Line Tools; on Windows it means the Microsoft C++ Build Tools.
  • Auxiliary system libraries – Features like system trays, notifications, and file dialogs rely on platform‑specific libraries such as libappindicator (Linux) or the Windows SDK.

None of these dependencies are needed by the people who run your finished app. They are a one‑time setup cost for the developer machine.

A Quick Look at Each Platform

The exact set of dependencies depends on your operating system. The following tabs show a high‑level summary of the most critical items for each platform.

Core packages (names vary by distribution):

  • libwebkit2gtk-4.1-dev — WebView runtime (4.1 series for Tauri v2)
  • build-essential or base-devel — C compiler and standard tools
  • libssl-dev / openssl — TLS and cryptography support
  • libayatana-appindicator3-dev — system tray icon support
  • librsvg2-dev — SVG rendering for certain UI elements

A C compiler, curl, wget, and file are also required on most distributions. The full list for Debian, Arch, Fedora, Gentoo, openSUSE, Alpine, and NixOS appears in the Linux Setup section.

Skipping Dependencies Causes Build Errors:

If any of these system dependencies are missing, the first cargo build (or npm run tauri dev) will fail with linker errors or missing header file messages. The error output usually names the missing library — for example, cannot find -lwebkit2gtk-4.1 on Linux, or a complaint about windows.h on Windows. Install the required package and retry; the build should proceed normally.

Supported Operating Systems

Tauri v2 officially supports the following environments for development and as build targets (for a complete list of hardware and OS requirements, see Supported Operating Systems). Older versions may work but are not actively tested.

PlatformMinimum VersionNotes
LinuxVaries by distributionThe main requirement is WebKitGTK 4.1. Distributions with older package repositories may need backports or alternative installation methods.
macOSCatalina (10.15) and laterXcode 12 or later is recommended. For iOS builds, Xcode 14+ and a physical device or simulator are required.
WindowsWindows 7 and laterWindows 7 requires the WebView2 runtime to be installed manually. The MSVC build tools officially support Windows 10+ but can target Windows 7.

Windows Subsystem for Linux (WSL) users should follow the Linux instructions inside their WSL environment. X11 forwarding or a similar mechanism is needed to run the graphical application.

Why Tauri Doesn’t Bundle a Web Engine

Frameworks like Electron bundle an entire Chromium browser. That guarantees identical rendering everywhere but adds roughly 100 MB to every app. Tauri takes a different approach: it uses the operating system’s own webview. On Linux that’s WebKitGTK, on macOS it’s WKWebView, and on Windows it’s WebView2 (which is based on Edge/Chromium). The result is a drastically smaller application, but it does mean that the development machine must have the corresponding development headers and libraries to link against.

End‑Users Are Not Affected:

The system dependencies described here are only needed while you are building the application. When users install your final .deb, .dmg, .msi, or AppImage, the required runtime components are either already present on their system (like WebView2 on Windows 11) or are declared as package dependencies and installed automatically. Your users never need to manually install SDKs or build tools.

Checking What’s Already Installed

Before you follow any setup guide, it’s useful to know what you already have.

  • On Windows — Open a PowerShell terminal and run winget list or check “Apps & features” for “Microsoft Visual C++ Redistributable” and “Microsoft Edge WebView2 Runtime.”
  • On macOS — Run xcode-select -p to see if Command Line Tools are already installed. A path like /Library/Developer/CommandLineTools means they are.
  • On Linux — Use your package manager to query specific packages, for example dpkg -l | grep webkit2gtk on Debian/Ubuntu, or pacman -Q | grep webkit2gtk on Arch.

You’re on the Right Track:

If you can open a terminal and the commands cc --version, git --version, and rustc --version all print version numbers, your build toolchain foundation is already in place. The remaining step is to install the platform‑specific libraries using the guide for your operating system.

A Word About Mobile Targets

Tauri v2 supports Android and iOS from the same Rust core. The system dependencies for mobile development are additional layers on top of the desktop prerequisites. For Android you’ll need Android Studio, the NDK, and certain rustup targets. For iOS you’ll need Xcode (full version) and CocoaPods. Those requirements are outside the scope of this system dependencies overview; they are covered in the mobile configuration chapter after you have the core environment ready.

Supported Operating Systems

A detailed overview of operating systems supported for Tauri 2 development, including version requirements, platform-specific dependencies, and how to verify your setup.

Linux Setup

Install the system dependencies required for Tauri v2 development on popular Linux distributions

macOS Setup

Install the system dependencies required for Tauri v2 development on macOS

Windows Setup

Install and configure the required system dependencies for Tauri development on Windows, including C++ Build Tools, WebView2 Runtime, and VBSCRIPT for MSI installers